婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php實現的生成排列算法示例

php實現的生成排列算法示例

熱門標簽:廣東地市地圖標注 高德地圖標注家 江西手機自動外呼防封系統是什么 仁和怎么申請400開頭的電話 長春人工外呼系統服務商 廣州防封卡外呼系統多少錢一個月 怎么向銷售公司推銷外呼系統 外呼系統撥打暫時無法接通 哪里辦理400電話

本文實例講述了php實現的生成排列算法。分享給大家供大家參考,具體如下:

?php
function perm($s, $n, $index)
{
  if($n == 0)
  {
     return '';
  }
  else
  {
    $nIndex = count($index);  //可用的字符串下標
    $res = array();
    foreach($index as $i => $v)
    {
      $tmp = $index;
      unset($tmp[$i]);    //去掉當前的前綴
      /* 調試信息,便于理解
      echo "len $n , cur $i , index:\n";
      var_dump($tmp);
       */
      $ret = perm($s, $n-1, $tmp);  //遞歸得到稍短的排列
      if($ret != '')
      {
        foreach($ret as $r)
        {
          $res[] = $s[$v] . $r;  //將稍短的排列逐個拼上當前的前綴
        }
      }
      else
      {
        $res[] = $s[$v];
      }
    }
    return $res;
  }
}
function getPerm($s)
{
  $n = strlen($s);
  $index = range(0, $n-1);
  //得到不同長度的排列
  for($i=1; $i=$n; $i++)
  {
    var_dump(perm($s, $i, $index));
  }
}
getPerm('abcd');
?>

運行結果:

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
}
array(12) {
  [0]=>
  string(2) "ab"
  [1]=>
  string(2) "ac"
  [2]=>
  string(2) "ad"
  [3]=>
  string(2) "ba"
  [4]=>
  string(2) "bc"
  [5]=>
  string(2) "bd"
  [6]=>
  string(2) "ca"
  [7]=>
  string(2) "cb"
  [8]=>
  string(2) "cd"
  [9]=>
  string(2) "da"
  [10]=>
  string(2) "db"
  [11]=>
  string(2) "dc"
}
array(24) {
  [0]=>
  string(3) "abc"
  [1]=>
  string(3) "abd"
  [2]=>
  string(3) "acb"
  [3]=>
  string(3) "acd"
  [4]=>
  string(3) "adb"
  [5]=>
  string(3) "adc"
  [6]=>
  string(3) "bac"
  [7]=>
  string(3) "bad"
  [8]=>
  string(3) "bca"
  [9]=>
  string(3) "bcd"
  [10]=>
  string(3) "bda"
  [11]=>
  string(3) "bdc"
  [12]=>
  string(3) "cab"
  [13]=>
  string(3) "cad"
  [14]=>
  string(3) "cba"
  [15]=>
  string(3) "cbd"
  [16]=>
  string(3) "cda"
  [17]=>
  string(3) "cdb"
  [18]=>
  string(3) "dab"
  [19]=>
  string(3) "dac"
  [20]=>
  string(3) "dba"
  [21]=>
  string(3) "dbc"
  [22]=>
  string(3) "dca"
  [23]=>
  string(3) "dcb"
}
array(24) {
  [0]=>
  string(4) "abcd"
  [1]=>
  string(4) "abdc"
  [2]=>
  string(4) "acbd"
  [3]=>
  string(4) "acdb"
  [4]=>
  string(4) "adbc"
  [5]=>
  string(4) "adcb"
  [6]=>
  string(4) "bacd"
  [7]=>
  string(4) "badc"
  [8]=>
  string(4) "bcad"
  [9]=>
  string(4) "bcda"
  [10]=>
  string(4) "bdac"
  [11]=>
  string(4) "bdca"
  [12]=>
  string(4) "cabd"
  [13]=>
  string(4) "cadb"
  [14]=>
  string(4) "cbad"
  [15]=>
  string(4) "cbda"
  [16]=>
  string(4) "cdab"
  [17]=>
  string(4) "cdba"
  [18]=>
  string(4) "dabc"
  [19]=>
  string(4) "dacb"
  [20]=>
  string(4) "dbac"
  [21]=>
  string(4) "dbca"
  [22]=>
  string(4) "dcab"
  [23]=>
  string(4) "dcba"
}

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數據結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結》及《PHP數學運算技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP實現的簡單排列組合算法應用示例
  • php全排列遞歸算法代碼
  • 使用php計算排列組合的方法
  • 淺談PHP的排列組合(如輸入a,b,c 輸出他們的全部組合)
  • php通過排列組合實現1到9數字相加都等于20的方法
  • php求數組全排列,元素所有組合的方法總結
  • PHP輸出多個元素的排列或組合的方法
  • php求數組全排列,元素所有組合的方法
  • PHP實現基于圖的深度優先遍歷輸出1,2,3...n的全排列功能
  • PHP實現字符串的全排列詳解

標簽:梅河口 惠州 湘西 濮陽 海北 廈門 文山 黔東

巨人網絡通訊聲明:本文標題《php實現的生成排列算法示例》,本文關鍵詞  php,實現,的,生成,排列,算法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php實現的生成排列算法示例》相關的同類信息!
  • 本頁收集關于php實現的生成排列算法示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 寻甸| 枞阳县| 巴彦县| 曲水县| 凤山县| 六盘水市| 若羌县| 阜南县| 冀州市| 巴林左旗| 历史| 巴彦县| 封丘县| 西乌珠穆沁旗| 且末县| 三都| 衡山县| 漯河市| 刚察县| 乡城县| 科尔| 崇信县| 利辛县| 溧阳市| 西丰县| 沅陵县| 教育| 兴国县| 洪泽县| 闽清县| 锡林郭勒盟| 吉隆县| 万年县| 通山县| 宾川县| 石阡县| 姜堰市| 泾川县| 东平县| 同德县| 方城县|