我正在尝试编写一个PHP代码,为我提供滚动3个骰子的可能值范围,我们知道每个骰子可能是{1 - 6}的范围
所以这就是我所拥有的:
$x = rand(1,6);
$y = rand(1,6);
$z = rand(1,6);
因此输出将是;
$a = $x + $y + $z;
我正在尝试编写一个php函数来确定$ a的概率;低输出为3(1 + 1 + 1)&最大值是18,即(6 + 6 + 6)我怎么能这样做?
由于
答案 0 :(得分:0)
我很无聊:
$sides=6;
$num=3;
function diceRange($sides,$num) {
return array('low' => 1 * $num, 'high' => $sides * $num);
}
答案 1 :(得分:0)
请更具体一点。具有任意数量的任何骰子集的范围或仅该特定集的范围。或者经过一定量的滚动后的范围?
对于特定数量的卷,请参阅下文
$min = 0;
$max = 0;
for ($roll = 0; $roll<$amountOfRolls; $roll++){
$a = $x + $y + $z;
if ($a<$min){
$min = $a
}
if ($a>$max){
$max = $a
}
}
$range = $max-$min;
答案 2 :(得分:0)
您可以计算每个可能的掷骰的总和,确定每个总得出的频率,从而确定概率。然后将此技术扩展到不同种类/组合的骰子卷。以下是使用3d6的示例:
$totals = array();
$count = 0;
for ($x = 1 ; $x <= 6 ; $x++) {
for ($y = 1 ; $y <= 6 ; $y++) {
for ($z = 1 ; $z <= 6 ; $z++) {
$total = $x + $y + $z;
if (isset($totals[$total])) {
$totals[$total]++;
} else {
$totals[$total] = 1;
}
$count++;
}
}
}
foreach ($totals as $num => $freq) {
$probability = number_format(100*$freq/$count,2);
echo "$num: $freq ($probability %)\n";
}
这是一个包含不同组合的不同类型骰子的网站 - 专门针对D&amp; D:http://rumkin.com/reference/dnd/diestats.php