茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    PHP全排列算法實現(xiàn)程序代碼
    來源:易賢網(wǎng) 閱讀:1817 次 日期:2015-01-15 14:11:16
    溫馨提示:易賢網(wǎng)小編為您整理了“PHP全排列算法實現(xiàn)程序代碼”,方便廣大網(wǎng)友查閱!

    從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的一個排列。當(dāng)m=n時所有的排列情況叫全排列。

    簡介

    如1,2,3三個元素的全排列為:

    1,2,3

    1,3,2

    2,1,3

    2,3,1

    3,1,2

    3,2,1

    共3*2*1=6種 3!

    2公式

    全排列數(shù)f(n)=n!(定義0!=1)

    遞歸算法

    1,2,3

    1,3,2

    2,1,3

    2,3,1

    3,2,1

    3,1,2

    這是由于算法只是考慮到了如何輸出全排列,而沒有考慮到換位是否有問題。所以我提出了解決方案,就是換位函數(shù)修改下

    如 1 2 3 換位的話 ,不應(yīng)該直接 3 2 1這樣 ,讓3和1直接換位; 而是讓3排在最前后 ,1 2 依次向后

    基本算法

    以下介紹全排列算法四種:

    (A)字典序法

    (B)遞增進位制數(shù)法

    (C)遞減進位制數(shù)法

    (D)鄰位對換法

    實現(xiàn)全排列算法

    代碼如下

    <?php

    header("content-type:text/html;charset=utf-8");/**

    * @param array $a 待排列的元素集合,會動態(tài)變化

    * @param array $b 儲存當(dāng)前排列

    * @param array $M 待排列的元素集合,相當(dāng)于一個常量,始終為初始待排列的元素集合

    */

    function wholerange($a,$b,$M){

    $range=array();

    if(count($a) > 1){

    $d=$b;

    foreach($a as $value){

    $b[]=$value;

    $c=array_diff($M,$b);

    if(count($c) > 0){

    $range[]=wholerange($c,$b,$M);

    }

    $b=$d;

    }

    }elseif(count($a) == 1){

    foreach($a as $value){

    $b[]=$value;

    }

    $onerange="";

    foreach($b as $value){

    $onerange.=$value;

    }

    $range[]=$onerange;

    }

    return $range;

    }

    /**

    * 遞歸輸出數(shù)組

    *

    * @param array $arr 待輸出的數(shù)組

    * @return int 返回數(shù)組元素個數(shù)*/

    function recursionarray($arr){

    $i=0;

    foreach($arr as $value){

    if(is_array($value)){

    $i+=recursionarray($value);

    }else{

    echo $value."<br/>";

    $i++;

    }

    }

    return $i;

    }

    $a=array('A','B','C','D');

    $b=array();

    $range=wholerange($a,$b,$a);

    $count=recursionarray($range);

    echo "總共有".$count."排列";

    ?>

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機網(wǎng)站地址:PHP全排列算法實現(xiàn)程序代碼
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)