在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
用php实现的排列组合算法。使用递归算法,效率低,胜在简单易懂。可对付元素不多的情况。 //从$input数组中取$m个数的组合算法 function comb($input, $m) { if($m==1) { foreach($input as $item) { $result[]=array($item); } return $result; } for($i=0;$i<=count($input)-$m;$i++) { $nextinput=array_slice($input,$i+1); $nextresult=comb($nextinput,$m-1); foreach($nextresult as $one) { $result[]=array_merge(array($input[$i]),$one); } } return $result; } //从$input数组中取$m个数的排列算法 function perm($input,$m) { if($m==1) { foreach($input as $item) { $result[]=array($item); } return $result; } for($i=0;$i<count($input);$i++) { $nextinput=array_merge(array_slice($input,0,$i),array_slice($input,$i+1)); $nextresult=perm($nextinput,$m-1); foreach($nextresult as $one) { $result[]=array_merge(array($input[$i]),$one); } } return $result; } $input=array(1,2,3,4,5); print_r(comb($input,3)); print_r(perm($input,3));
|
2022-07-29
2022-08-30
2022-08-17
2022-11-06
2022-08-18
请发表评论