我試圖寫一個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