组合算法的PHP解答方法
作者:bea
题目:组合算法:有一个数组a,有N 个元素,现在要求从中找出含有任意元素的所有组合个数。 解答:先看规律吧: 假设这个数组为array(1,2,3,4,5)那么M=5; 可能出现的组合为: 1个数字的组合个数: 5 2个数字的组合个数: 4+3+2+1 3个数字的组合个数: 3+2+1 4个数字的组合个数: 2+1 5个数字的组合个数: 1 很眼熟吧,就是一个逆序的9*9乘法表。除过第一行有M个组合外,其他的组合按乘法表来处理,2个FOR语句嵌套而已 代码: 代码如下:
题目:组合算法:有一个数组a,有N 个元素,现在要求从中找出含有任意元素的所有组合个数。
解答:先看规律吧:
假设这个数组为array(1,2,3,4,5)那么M=5;
可能出现的组合为:
1个数字的组合个数: 5
2个数字的组合个数: 4+3+2+1
3个数字的组合个数: 3+2+1
4个数字的组合个数: 2+1
5个数字的组合个数: 1
很眼熟吧,就是一个逆序的9*9乘法表。除过第一行有M个组合外,其他的组合按乘法表来处理,2个FOR语句嵌套而已
代码:
代码如下:
$c = 5;
$a = $c;
for($i=1;$i<=$c;$i++){
for($k=$c-$i;$k>0;$k–){
$a +=$k;
}
}
echo $a;
有用 | 无用
解答:先看规律吧:
假设这个数组为array(1,2,3,4,5)那么M=5;
可能出现的组合为:
1个数字的组合个数: 5
2个数字的组合个数: 4+3+2+1
3个数字的组合个数: 3+2+1
4个数字的组合个数: 2+1
5个数字的组合个数: 1
很眼熟吧,就是一个逆序的9*9乘法表。除过第一行有M个组合外,其他的组合按乘法表来处理,2个FOR语句嵌套而已
代码:
代码如下:
$c = 5;
$a = $c;
for($i=1;$i<=$c;$i++){
for($k=$c-$i;$k>0;$k–){
$a +=$k;
}
}
echo $a;
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- PHP测试程序运行时间的类
- PHP设计模式 注册表模式
- PHP设计模式 注册表模式(多个类的注册)
- 需要注意的几个PHP漏洞小结
- PHP的可变变量名的使用方法分享
- PHP中如何判断AJAX提交的数据
- 用PHP书写安全的脚本代码
- PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
- PHP中使用数组实现堆栈数据结构的代码
- PHP使用数组实现队列
- mysql数据库差异比较的PHP代码
- PHP反转字符串函数strrev()函数的用法
- PHP __autoload函数(自动载入类文件)的使用方法
- PHP函数spl_autoload_register()用法和__autoload()介绍
- PHP中的cookie不用刷新就生效的方法
- PHP对象转换为数组函数(递归方法)
- PHP投票系统防刷票判断流程分析
- php摘要生成函数(无乱码)
- 写出高质量的PHP程序