一次丢5颗骰子,怎么快速计算骰子点数和的概率分布?
01-15
如果将5颗推广至n颗,有什么计算公式。可以尝试用编程来解决,或者用概率论与数理统计的知识解决,最好给出推理过程。
丢一颗骰子,结果的分布列为(下标从0开始)。
丢n颗骰子,结果的分布列为n个上述分布列的卷积。卷积可以用傅里叶变换快速计算:n个相同分布列的卷积,在频域就是该分布列频谱的n次方。
Matlab代码:n = 100;
p = zeros(6 * n + 1, 1); % 掷n颗骰子,最大总点数为6n
p(2:7) = 1/6;
q = ifft(fft(p) .^ n); % 这就是n颗骰子总点数的分布列,会有微小的浮点误差
可以用母函数啊,展开之后对应幂次的系数就是出现的这个和的可能情况的总数,代入x=1可以得到所有系数的和是,所以折合成概率就是
可以变形写成
或者或者可以转移概率矩阵
计算第n次转移的概率
function [ out ] =get_dice_trans_mat( n )
r = 5*(n-1)+1;c = 5*n+1;out = zeros(r,c);for i = 1 : r
for j = 1 : c if(j-i &< 6 j &>=i) out(i,j) = 1/6; end endendend主程序:clear;clc;t = 10;res = 1;for i = 1:t res = res*get_dice_trans_mat( i );end推薦閱讀:
※N個隨機變數之間的相關性兩兩小於0.7 ?
※P值與α值的關係?
※一條長度為一的線段隨機分成五份,其中至少有一份>四分之一的幾率是多少?
※人類行為服從的冪律分布是否違背了中心極限定理?
※概率論問題:邏輯上說不通?