溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP輸出輸出指定值的所有組合

發(fā)布時(shí)間:2021-09-03 21:50:48 來源:億速云 閱讀:259 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要講解了“PHP輸出輸出指定值的所有組合”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“PHP輸出輸出指定值的所有組合”吧!

實(shí)例如下:

<?php
/*分治法——直接選擇
比如說a b c
首先將a之后的字符依次與a進(jìn)行交換
1 b,a,c
2 c,b,a
注意這里少了一個(gè)原始數(shù)據(jù) a,b,c。需要把原始數(shù)據(jù)也算如排列中
3 a,b,c

然后把字符移到第二個(gè)位置,將第二個(gè)位置之后的數(shù)分別與第二個(gè)位置的數(shù)進(jìn)行交換
1 b,a,c ===> 11 b,c,a
2 c,b,a ===> 21 c,a,b
3 a,b,c ===> 31 a,c,b

**/
function zuhe($arr,$begin){
  if(!is_array($arr)) return ;
  $N = count($arr);
  if($begin == $N-1 || $begin >$N || $begin <0) return ;
  if($begin == 0){
    print_r($arr);//輸出原始數(shù)據(jù)
    echo '</br>';
  } 
  //循環(huán)將初始值與第i個(gè)值交換后進(jìn)行組合
  for($i = $begin;$i < $N;$i++){

    $t = $arr[$begin];
    $arr[$begin] = $arr[$i];
    $arr[$i] = $t;

    if($i!==$begin){//i==begin時(shí)的數(shù)已經(jīng)輸出過
      print_r($arr);
      echo '</br>';
    }
    zuhe($arr,$begin+1);  
    $t = $arr[$begin];
    $arr[$begin] = $arr[$i];
    $arr[$i] = $t;

  }
}

$arr = array('a','b','c','d');
//zuhe($arr,0);


/*分治法——直接插入
初始時(shí)從0個(gè)元素開始,輸出初始序列,為組合的一個(gè)序列
當(dāng)在來一個(gè)元素時(shí)只需將該元素放在該元素之前的元素組的不同的位置即組成了不同的排列
如已有元素組為a,b.新元素為c,把c分別與a,b進(jìn)行交換即可(a,c,b);(c,b,a),在現(xiàn)有的排列上在新增元素
重復(fù)執(zhí)行以上步驟
*/
function zuhe2($arr,$begin){
  if($begin==0) {
    print_r($arr);
    echo "</br>";
    //zuhe2($arr,$begin+1);
  }
  if($begin >= count($arr)) return ;
  zuhe2($arr,$begin+1);//begin時(shí)的排列上一次已產(chǎn)生,直接新增元素
  for($i = $begin-1;$i>=0;$i--){
    $t = $arr[$begin];
    $arr[$begin] = $arr[$i];
    $arr[$i] = $t;
    print_r($arr);
    echo "</br>";
    zuhe2($arr,$begin +1);
    $t = $arr[$begin];
    $arr[$begin] = $arr[$i];
    $arr[$i] = $t;
  }
}

感謝各位的閱讀,以上就是“PHP輸出輸出指定值的所有組合”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)PHP輸出輸出指定值的所有組合這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI