安静
PHP技术博客

160411 php组合排列实现

学习系统实现组合排列

遇到个需求需要从100道题目中随机抽取10道题作为学习测试题,并且出现的组合不能重复,给出大概可用组合的次数.

组合排列实现:

//PHP乘阶实现
function factorial($n)
{
if ($n > 1) {
return $n * factorial($n - 1);
} else {
return 1;
}
}
//组合排列
function randGet($n, $m)
{
echo "{$n}个数中取{$m}个数随机排列,且不重复可有" . factorial($n) / factorial($n - $m) / factorial($m) . "次变种" . PHP_EOL;
}
randGet(3, 2);
randGet(6, 2);
randGet(100, 4);

执行结果:

3个数中取2个数随机排列,且不重复可有3次变种
6个数中取2个数随机排列,且不重复可有15次变种
100个数中取4个数随机排列,且不重复可有3921225次变种

参考:

  1. 乘阶
  2. 排列组合
  3. 解决公式
赞(0) 打赏
未经允许不得转载:AJ's Blog » 160411 php组合排列实现
分享到: 更多 (0)

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    学习了!

    PHP程序员雷雪松2年前 (2016-06-24)
  2. #-48

    写的不错哈,支持一下

  3. #-47

    这个文章写的好,转走了!

    奇虎分享网2年前 (2016-08-17)
  4. #-46

    直接数组排序怎样

    夏日草博客2年前 (2017-02-26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏