Re: [問題] 扔n次骰子,各種點數和的機率

作者: cismjmgoshr (--???--)   2015-01-20 01:54:13
※ 引述《o07608 (無良記者)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: VC++ 2013
: 問題(Question):
: 我不太確定這種問題能否在這邊發問,不過還是會試著盡量詳述我的問題與想法
: 這次有個功課,是要寫一個能夠計算扔n次骰子,出現的點數和的機率
: 比方說,扔一次骰子,點數會有1~6,機率各是1/6
: 扔兩次骰子,點數會從2~12,機率則會分別是{1,2,3,4,5,6,5,4,3,2,1}/36
用組合數來試試
擲一次骰子,各種點數的組合數
點數 1 2 3 4 5 6
組合數 1 1 1 1 1 1
擲兩次骰子
點數 1 2 3 4 5 6 7 8 9 10 11 12
組合數 0 1 2 3 4 5 6 5 4 3 2 1
假設擲第n次,點數P的組合數有 S(P,n)種
S(P,n) =
S(P-6,n-1) + S(P-5,n-1) + S(P-4,n-1) + S(P-3,n-1) + S(P-2,n-1) + S(P-1,n-1)
例如,擲第3次時,點數8的組合數有:
前兩次點數和2,第3次點數6: 1種組合
前兩次點數和3,第3次點數5: 2種組合
前兩次點數和4,第3次點數4: 3種組合
前兩次點數和5,第3次點數3: 4種組合
前兩次點數和6,第3次點數2: 5種組合
前兩次點數和7,第3次點數2: 6種組合
總計 1+2+3+4+5+6=21種
擲第3次時,點數9的組合有
前兩次點數和3,第3次點數5: 2種組合
前兩次點數和4,第3次點數4: 3種組合
前兩次點數和5,第3次點數3: 4種組合
前兩次點數和6,第3次點數2: 5種組合
前兩次點數和7,第3次點數2: 6種組合
前兩次點數和8,第3次點數1: 5種組合
總計 2+3+4+5+6+5=25種
所以,擲3次骰子的點數與組合數是
點數 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
組合數 0 0 1 3 6 10 15 21 25 27 27 25 21 15 10 6 3 1
有了擲3次骰子的結果,可以算出擲4次骰子的組合數
點數 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
組合數 0 0 0 1 4 10 20 35 56 80 125 146 125 80 56 35 20 10 4 1
104 140 140 104
由第1次擲骰子開始,用迴圈算出第2次,第3次...第N次的組合數
然後就可以算出第N次的機率
不過32位元整數會在第12次擲骰子時溢位(6^12 = 2176782336 > 2147483648 = 2^31-1)
超過12次需要用長整數來計算
作者: cismjmgoshr (--???--)   2015-01-20 02:39:00
用excel可以快速的建表算出來 http://ppt.cc/gXby

Links booklink

Contact Us: admin [ a t ] ucptt.com