逻辑性问题:数字的组合
时间:2010-09-20
来源:互联网
有个问题,想问一下,有5、8或多个数字:1、2、3、4、5 或1、2、3、4、5、6、7、8,
现在想这样:
每三个数一组,程序怎么编写才能得出这些数字可以组成了多少组,每组数是由哪几个数字组成?
TKS
现在想这样:
每三个数一组,程序怎么编写才能得出这些数字可以组成了多少组,每组数是由哪几个数字组成?
TKS
作者: huanghong 发布时间: 2010-09-20
在网上找了个函数,但有问题,各们大侠请看看
/**
* 函数 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] < $total-($num-1)) {
$t = array();
for($i=0; $i <$num; $i ) $t[] = $ar[$control[$i]];
$r[] = $t;
for($i=$num-1; $i> =0; $i--) {
$control[$i] ;
for($j=$i; $j <$num-1; $j ) $control[$j 1] = $control[$j] 1;
if($control[$i] < $total-($num-$i-1)) break;
}
}
return $r;
}
endif;
/** 示例 **/
print_r(combination(array(1,2,3,4,5), 3));
/**
* 函数 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] < $total-($num-1)) {
$t = array();
for($i=0; $i <$num; $i ) $t[] = $ar[$control[$i]];
$r[] = $t;
for($i=$num-1; $i> =0; $i--) {
$control[$i] ;
for($j=$i; $j <$num-1; $j ) $control[$j 1] = $control[$j] 1;
if($control[$i] < $total-($num-$i-1)) break;
}
}
return $r;
}
endif;
/** 示例 **/
print_r(combination(array(1,2,3,4,5), 3));
作者: huanghong 发布时间: 2010-09-20
干什么用的
作者: mofe 发布时间: 2010-09-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28