function dx($sum = 3){
$min = 3;
$max = 27;
$avg = ceil($sum / 3);
if($sum > 27 || $min <3){
return false;
}
if($sum <= $min || $sum >= $max ){
return array($avg,$avg,$avg);
}
$rand_max = $sum >= 9 ? 9: $sum; //遍历的最大值
$n1 = $n2 = $n3 = null;
while(true){
$n1 = mt_rand(1,$rand_max);
$s1 = $sum - $n1; //剩余的可以遍历的 余地
if($s1 < 2){
$n1 = $n1 - 2;
$s1 = $sum - $n1;
}
$s1_rand = $s1 >= 9 ? 9: $s1; //遍历的最大值
$n2 = mt_rand(1,$s1_rand);
$s2 = $sum - $n1 - $n2; //剩余可以遍历的余地
if($s2 < 1){
$n2 = $n2 - 1;
}
$n3 = $sum - $n1 - $n2;
$tem_sum = $n1+$n2+$n3;
if($tem_sum == $sum && $n3 <= 9 ){
break;
}
}
return array($n1,$n2,$n3);
}