PHP如何实现以下问题 本帖最后由 mt_hero 于 2012-11-08 13:33:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是组合,C(n,m) = n!/((n-m)!*m!)n=7, m=6 得 7!/((7-6)!*6!) = 7!/6! = 7n=10, m=6 得 10!/((10-6)!*6!) = 10!/(4!*6!) = (10*9*8*7)/(4*3*2*1) = 210php 实现的求组合的算法有很多,这里给出一种$arr = array(1,2,3,4,5,6,7,8,9,10);print_r(comb($arr, 6));function comb( $arr, $num=0) { $len = count($arr); if($num == 0) $num = $len; $res = array(); for($i=1,$n=pow(2, $len);$i<$n;++$i) { $tmp = str_pad(base_convert($i, 10, 2), $len, '0', STR_PAD_LEFT); $t = array(); for($j=0;$j<$len;++$j) { if($tmp{$j} == '1') { $t[] = $arr[$j]; } } if(count($t) == $num) $res[] = $t; } return $res;} <?php $a = "1,2,3,4,5,6,7,8,9,10"; $res = array_rand(explode(',',$a),6);至于多少种方式嘛,排列组合可以很容易求出。C(n,6) 是否隐形的加入了 \r\n? PHP学习中遇到的问题 cookie的问题,为什么用echo $_COOKIE['mycookie'];查不到值呢? 有同情心的。。 apache rewrite 如果文件不存在就调转一个地址 请问如何能验证登录名密码正确? PHP中,读取文件最后修改时间问题(急,在线等) 关于页面变量传递 帮帮我,我快疯了。 php 怎么 实现从数据库随机取出10条数据 按某个字段数量优先 php如何调试部署 下面这句php代码有问题吗?怎么老是写不进数据库里去.
n=7, m=6 得 7!/((7-6)!*6!) = 7!/6! = 7
n=10, m=6 得 10!/((10-6)!*6!) = 10!/(4!*6!) = (10*9*8*7)/(4*3*2*1) = 210php 实现的求组合的算法有很多,这里给出一种
$arr = array(1,2,3,4,5,6,7,8,9,10);
print_r(comb($arr, 6));function comb( $arr, $num=0) {
$len = count($arr);
if($num == 0) $num = $len;
$res = array();
for($i=1,$n=pow(2, $len);$i<$n;++$i) {
$tmp = str_pad(base_convert($i, 10, 2), $len, '0', STR_PAD_LEFT);
$t = array();
for($j=0;$j<$len;++$j) {
if($tmp{$j} == '1') {
$t[] = $arr[$j];
}
}
if(count($t) == $num) $res[] = $t;
}
return $res;
}
<?php
$a = "1,2,3,4,5,6,7,8,9,10";
$res = array_rand(explode(',',$a),6);
至于多少种方式嘛,排列组合可以很容易求出。C(n,6)