Re: [討論] 不公正骰子 寫法已回收

看板MATLAB作者 (大長今)時間13年前 (2010/12/31 12:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《fonlintw0621 (fonlintw0621)》之銘言: : 程式需求 : : a. 輸入出現六的機率 : b. 剩餘數字出現機率均勻分配 : clear all;clc; : r = input('輸入不公正骰子點數6的機率'); : n = r/100 + ([1-r/100] /5) .* [0 1 2 3 4 5]; : for i = 1:100; : if rand(1) >= 0 & rand(1) < n(1) : computer(i) = 6 ; : elseif rand(1) >= n(1) & rand(1) < n(2) : computer(i) = 5 ; : elseif rand(1) >= n(2) & rand(1) < n(3) : computer(i) = 4 ; : elseif rand(1) >= n(3) & rand(1) < n(4) : computer(i) = 3 ; : elseif rand(1) >= n(4) & rand(1) < n(5) : computer(i) = 2 ; : else : computer(i) = 1 ; : end : end : 請問哪裡有錯誤呢 ? : 我發現 每一項 用 n = n + 1 : 跑 出現1~6 的項數,分配機率跟我預期的不太一樣。 p=0.5 %六出現的機率 n=10000 %抽樣n個 x = randsample(1:6,n,true,[(1-p)/5*ones(1,5) p]) %x:以此不均勻骰子模擬n次 hist(x,[1 : 6]) %畫直方圖檢視點數1~6個出現的次數 可得到1~5次數大約相同 6較高(P(x=6)=0.5) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.27.14
文章代碼(AID): #1D7LWKz1 (MATLAB)
文章代碼(AID): #1D7LWKz1 (MATLAB)