我试图写一个PHP代码给我滚3个骰子,每个骰子的值的可能范围,因为我们知道可以从一系列{1 - 6}PHP 3掷骰子的概率计算
所以在这里是我有:
$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)我怎么能这样做呢?
感谢
我试图写一个PHP代码给我滚3个骰子,每个骰子的值的可能范围,因为我们知道可以从一系列{1 - 6}PHP 3掷骰子的概率计算
所以在这里是我有:
$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)我怎么能这样做呢?
感谢
我很无聊:
$sides=6;
$num=3;
function diceRange($sides,$num) {
return array('low' => 1 * $num, 'high' => $sides * $num);
}
更具体请。任何一组骰子的范围,包含任意数量的数字或者该特定组合的范围。或者在一定量的卷之后的范围?
对于轧辊的具体量见下文
$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;
可以计算出总的每个可能的轧辊,确定频率,每个总出现,因此,概率。然后将这种技术扩展到不同种类/骰子组合。下面是使用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 & d:http://rumkin.com/reference/dnd/diestats.php
*各自如我们知道可以从{1的范围内骰子 - 6} *有人需要玩一些D&D – 2014-12-01 20:24:56
你想计算每个潜在卷的概率?因为范围很明显,而不需要做任何奇特的编码:3 - > 18,aka(1 + 1 + 1) - >(6 + 6 + 6) – 2014-12-01 20:25:48
'$ numDice = 3; $ low = 1; $ high = 6;函数diceRange($ numDice,$ low,$ high){return array('low'=> $ numDice * $ low,'high'=> $ numDice * $ high); } print_r(diceRange($ numDice,$ low,$ high));' – sjagr 2014-12-01 20:26:08