[問題]亂數產生

看板MATLAB作者 (航)時間13年前 (2012/08/11 20:30), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/1
因為是MATLAB的新手 目前只有用過亂數產生齊一分配(uniform)跟常態分配(normal) 但是假如今天我拿到一個不公正的骰子 正因為一到六點出現的機率並不是1/6 所以我實際去擲一千次並記錄以逼近這個骰子每個點數出現的機率 (我已經取得data) 如果我還想要透過這些data再去亂數產生100次1~6點又要服從那個機率要怎麼做呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.253.23

08/12 16:39, , 1F
我之前是直接產生0~1之間亂數 再按照離散pdf去分割
08/12 16:39, 1F

08/12 16:41, , 2F
(0~1/4屬於1) (1/4~3/4屬於2) (3/4~1屬於3) 這樣做.
08/12 16:41, 2F

08/14 16:44, , 3F
謝謝
08/14 16:44, 3F

08/14 18:42, , 4F
假設1~6出現的次數(機率)各自是n1~n6(p1~p6) 則可考慮用
08/14 18:42, 4F

08/14 18:46, , 5F
randsrc(1,100,[1:6;p1 p2 p3 p4 p5 p6]) 或
08/14 18:46, 5F

08/14 18:48, , 6F
randsample(1:6,100,true,[p1 p2 p3 p4 p5 p6]) 或
08/14 18:48, 6F

08/14 18:48, , 7F
randsample(1:6,100,true,[n1 n2 n3 n4 n5 n6])
08/14 18:48, 7F

08/19 16:27, , 8F
謝謝樓上,這樣好像又更快了
08/19 16:27, 8F
文章代碼(AID): #1G9b1JeU (MATLAB)