求数字组合算法解决方案

WBOY
发布: 2016-06-13 13:47:48
原创
1111 人浏览过

求数字组合算法
假设有4个数字    
    1,2,3,4    
    要求其中三个数字的排列,但不能重复。
    例如组合:123,124,134,234。
    其中   123   的组合和213,312,321,132,231   的组合都是一样的。
    怎么实现?小弟菜鸟,在线等,谢谢!


------解决方案--------------------
上面有错
for($i=1;$i for($j=$i+1;$j for($k=$j+1;$k echo "$i,$j,$k
";

}
}
}

------解决方案--------------------
/**
* 函数 combination
* 功能 m取n的组合函数
* 参数
* $ar 数组,原始数据
* $num 数值,每个组合的元素个数
**/
if(! function_exists( 'combination ')):
function combination($ar, $num) {
$control = range(0, $num-1);
$k = false;
$total = count($ar);
while($control[0] $t = array();
for($i=0; $i $r[] = $t;

for($i=$num-1; $i> =0; $i--) {
$control[$i]++;
for($j=$i; $j if($control[$i] }
}
return $r;
}
endif;

/** 示例 **/
print_r(combination(array(1,2,3,4,5), 3));

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!