Re: [问题] 扔n次骰子,各种点数和的机率

楼主: cismjmgoshr (--???--)   2015-01-20 22:46:50
※ 引述《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
: 依此类推
数学一点的作法
掷n次骰子点数和为P的机率,等于下列方程式之中,x^P项的系数除以6^n
( x + x^2 + x^3 + x^4 + x^5 + x^6 )^n
n,P又会满足下列两个等式:
P1 + P2 + P3 + P4 + P5 + P6 = n
1*P1 + 2*P2 + 3*P3 + 4*P4 + 5*P5 + 6*P6 = P
其中, P1是n次掷骰子过程中,掷出1点的次数
P2是n次掷骰子过程中,掷出2点的次数
P3是n次掷骰子过程中,掷出3点的次数
P4是n次掷骰子过程中,掷出4点的次数
P5是n次掷骰子过程中,掷出5点的次数
P6是n次掷骰子过程中,掷出6点的次数
对于任意的n与P,写个程式可以找出所有的P1,P2...P6组合
然后带入多项式定理,算出x^P项系数
......想到这边我觉得还是DP比较好写
作者: LPH66 (-6.2598534e+18f)   2015-01-20 23:23:00
其实 DP 做法跟把这个多项式做 n 次方本质上是一样的
作者: firejox (Tangent)   2015-01-21 16:23:00
用\FFT/

Links booklink

Contact Us: admin [ a t ] ucptt.com