欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

123排列組合用PHP實現(xiàn)

林雅南1年前9瀏覽0評論

123排列組合是指將1、2、3這三個數(shù)字進(jìn)行全排列和組合的操作。在PHP中,可以利用遞歸函數(shù)實現(xiàn)123排列組合的功能。下面將通過具體的例子來說明如何用PHP實現(xiàn)123的排列組合。

首先,我們先來看一下如何將1、2、3進(jìn)行排列。我們可以將1作為第一個數(shù)字,然后將2、3作為第二個數(shù)字進(jìn)行排列;再將2作為第一個數(shù)字,將1、3作為第二個數(shù)字進(jìn)行排列;最后將3作為第一個數(shù)字,將1、2作為第二個數(shù)字進(jìn)行排列。下面是用PHP代碼實現(xiàn)這個功能的例子:

<?php
function permutation($arr, $res){
//輸出結(jié)果
if(count($res) == count($arr)){
echo implode(' ', $res)."\n";
}
//遞歸計算
foreach ($arr as $key =>$value) {
if(!in_array($value, $res)){
$res[] = $value;
permutation($arr, $res);
array_pop($res);
}
}
}
//測試
$nums = array(1, 2, 3);
permutation($nums, array());
?>

運行上述代碼,可以得到如下的排列結(jié)果:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

接下來,我們再來看一下如何將1、2、3進(jìn)行組合。對于一個給定的長度,我們可以通過遍歷所有可能的組合來得到結(jié)果。比如,當(dāng)長度為2時,我們可以得到以下組合:12、13、21、23、31、32。下面是用PHP代碼實現(xiàn)這個功能的例子:

<?php
function combination($arr, $res, $size, $start){
//輸出結(jié)果
if(count($res) == $size){
echo implode(' ', $res)."\n";
return;
}
//遞歸計算
for($i = $start; $i< count($arr); $i++){
$res[] = $arr[$i];
combination($arr, $res, $size, $i+1);
array_pop($res);
}
}
//測試
$nums = array(1, 2, 3);
for($i = 1; $i<= count($nums); $i++){
combination($nums, array(), $i, 0);
}
?>

運行上述代碼,可以得到如下的組合結(jié)果:

1
2
3
1 2
1 3
2 3
1 2 3

通過上述例子可以看出,利用遞歸函數(shù)可以很方便地實現(xiàn)123排列組合的操作。無論是排列還是組合,我們都可以通過遞歸的方式得到所有的可能結(jié)果。