PHP实现排列组合
来源:互联网 发布:网易云课堂for mac版 编辑:程序博客网 时间:2024/05/29 09:22
<?php// 阶乘function factorial($n){ return array_product(range(1,$n));}// 排列数function A($n,$m){ return factorial($n)/factorial($n-$m);}// 组合数function C($n,$m){ return A($n,$m)/factorial($m);}/** * 排列 * @param array $a * 要排列的数构成的数组 * @param int $m * @return array * 返回所有的排列情况 */function arrangement($a, $m) { $r = array(); $n = count($a); if ($m <= 0 || $m > $n) { return $r; } for ($i=0; $i<$n; $i++) { $b = $a; $t = array_splice($b, $i, 1); if ($m == 1) { $r[] = $t; } else { $c = arrangement($b, $m-1); foreach ($c as $v) { $r[] = array_merge($t, $v); } } } return $r;}/** * 组合 * @param array $a * 要组合的数构成的数组 * @param int $m * @return array * 返回所有的组合情况 */function combination($a, $m) { $r = array(); $n = count($a); if ($m <= 0 || $m > $n) { return $r; } for ($i=0; $i<$n; $i++) { $t = array($a[$i]); if ($m == 1) { $r[] = $t; } else { $b = array_slice($a, $i+1); $c = combination($b, $m-1); foreach ($c as $v) { $r[] = array_merge($t, $v); } } } return $r;}
阅读全文
0 0
- PHP实现排列组合
- 排列组合实现
- PHP排列组合算法
- java实现排列组合实现
- 递归实现数字排列组合
- 用递归实现排列组合
- C#实现排列组合算法
- 排列组合的实现
- 用递归实现排列组合
- 排列组合 C++实现
- 排列组合的实现
- 排列组合代码实现
- 递归实现排列组合
- C++实现排列组合
- 排列组合的实现
- 排列组合的递归实现
- Python.排列组合实现方法
- java 实现全排列组合
- springmvc中自定义异常处理器输出异常信息
- js获取选中的option的id和文本
- JSON串解析代码
- PB应用走向WEB的技术方案选择——Appeon for PowerBuilder WEB 发布和J2EE WEB应用重写方案的比较
- lftp连接异常情况分析过程(lftp与sftp结合使用)
- PHP实现排列组合
- 树结构学习笔记(一)
- 面向对象三大特征及理解
- POJ 2082 Terrible Sets(单调栈) 【最大矩形面积类模板】
- ceshi
- Spring框架, bean的生命周期中,初始化和销毁.
- (3)birt笔记
- 高性能异步RPC框架 kiss-rpc-flatbuffer介绍和测试
- 2017~ROS暑期学校~分享