浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组
网络编程 2021-07-05 08:23www.168986.cn编程入门
狼蚁网站SEO优化长沙网络推广就为大家带来一篇浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)。长沙网络推广觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随长沙网络推广过来看看吧
实例如下
<?php /分治法——直接选择 比如说a b c 将a之后的字符依次与a进行交换 1 b,a,c 2 c,b,a 注意这里少了一个原始数据 a,b,c。需要把原始数据也算如排列中 3 a,b,c 然后把字符移到第二个位置,将第二个位置之后的数分别与第二个位置的数进行交换 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);//输出原始数据 echo '</br>'; } //循环将初始值与第i个值交换后进行组合 for($i = $begin;$i < $N;$i++){ $t = $arr[$begin]; $arr[$begin] = $arr[$i]; $arr[$i] = $t; if($i!==$begin){//i==begin时的数已经输出过 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); /分治法——直接插入 初始时从0个元素开始,输出初始序列,为组合的一个序列 当在来一个元素时只需将该元素放在该元素之前的元素组的不同的位置即组成了不同的排列 如已有元素组为a,b.新元素为c,把c分别与a,b进行交换即可(a,c,b);(c,b,a),在现有的排列上在新增元素 重复执行以上步骤 / 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时的排列上一次已产生,直接新增元素 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的排列组合(如输入a,b,c 输出他们的全部组合)就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程