我正在嘗試計算不斷變化的6面擲骰數量的賠率分佈。例如,3D6從3範圍爲18如下:使用6面骰子計算賠率分佈
3:1, 4:3, 5:6, 6:10, 7:15, 8:21, 9:25, 10:27, 11:27, 12:25, 13:21, 14:15, 15:10, 16:6, 17:3, 18:1
我寫這個PHP程序來計算的話:
function distributionCalc($numberDice,$sides=6) {
for ($i=0; $i<pow($sides,$numberDice); $i++)
{
$sum=0;
for ($j=0; $j<$numberDice; $j++)
{ $sum+=(1+(floor($i/pow($sides,$j))) % $sides); }
$distribution[$sum]++;
}
return $distribution;
}
for循環內附加$ J採用地板的魔力和模量函數來創建與數字在骰子的數目的數目的基-6-計數序列,所以將3D6作爲計數:
111,112,113,114,115,116,121,122,123,124,125,126,131,etc.
該函數取各自的和,所以它會被理解爲:3,4,5,6,7,8,4,5,6,7,8,9,5等。它通過所有6^3個可能的結果進行處理,並在3到18之間的$分佈數組的相應插槽中添加1。非常簡單。然而,它只能工作到8d6左右,之後我得到服務器暫停,因爲它現在正在做數十億次計算。
但我不認爲這是必要的,因爲死亡概率遵循甜蜜的鐘形曲線分佈。我想知道是否有一種方法可以跳過數字運算並直接進入曲線本身。有沒有辦法做到這一點,例如,80D6(範圍:80-480)?該分佈可以在不進行6^80計算的情況下進行預測嗎?
我不是一個專業的編碼器,對我來說概率還是新的,所以謝謝你的幫助!
斯蒂芬
二項式分佈不能模擬擲骰子的* sum *,只能得到單個結果(例如,如果我們擲出40個骰子,會擲出多少個3) – rlbond 2010-04-22 20:06:14