这3个数的取值范围是1-6,必定是整数
第一种情况,3个数的和取值范围4-10,随机产生这3个数(分3个数可以全部重复和不可以全部重复两种情况)
第二种情况,3个数的和取值范围11-17,随机产生这3个数(分3个数可以全部重复和不可以全部重复两种情况)
举例说明:
如果允许全部重复,那么如果3个数的和是15,那么3个数可能是5,5,5,而如果不允许全部重复,
3个数只可能是4,5,6或,6,6,3或3,6,6之类的组合
求一个函数,
//根据给出的和,和是否允许3个数完全相同3个数的数组,
//要求必须能否返回所有可能的组合,比如6,6,3和3,6,6都必须有可能返回。
//程序只要求随机返回所有可能性组合之一即可。
function get3nums($第几种情况,$是否允许全部重复)
//比如list($rand1,$rand2,$rand3) = get3nums(2,false);//第二种情况,且3个数字不允许全部相同
//得到$rand1=6,$rand2=6,$rand3=3
function get3nums($qingkuang,$ifxiangtong){
}
------解决思路----------------------
------解决思路----------------------
再检查一下就是了function get3nums($start, $end, $repeat=false) {
do {
do {
$r = array();
$n = rand($start, $end); //取得指定范围中的一个数
$a = intval($n/3);
$r[] = rand(1, min($a, 6));
$r[] = rand(1, min($a, 6));
$r[] = $n - array_sum($r);
}while(max($r) > 6);
if($repeat) break;
}while(count(array_count_values($r)) == 1);
return $r;
}
