[問題] 增進大量產生隨機數的效率
我要寫一個程式作業,他的要求是這樣的:
第一步驟:先隨機產生一個0~9的整數,0的話得到d=0,1的話d=第二步驟的值*2
,否則就是d=第二個步驟的值*1
第二步驟:產生一個1~6的值,配合第一步驟的整數值決定d值
問題來了:
當要產生的d值數量有非常多個(n個)時,rand次數=2n,我該如何著手
進一步做效率的優化?
原本的程式是以switch跟rand決定第一步驟的值,我已經寫成陣列去減少因為if-switch
造成的遲緩,我有想過是否只要產生出一次rand,配合mod 10跟mod 6 + 1來達成,但我
觀察結果後,有點懷疑是不是會造成亂數不夠亂的問題?想請各位提供一些觀點讓我自己
最佳化我的程式。
程式碼(已改部分):http://codepad.org/KIpEcMfI
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.224.173.192
推
11/30 15:16, , 1F
11/30 15:16, 1F
→
11/30 15:18, , 2F
11/30 15:18, 2F
→
11/30 16:13, , 3F
11/30 16:13, 3F
→
11/30 16:54, , 4F
11/30 16:54, 4F
推
11/30 17:32, , 5F
11/30 17:32, 5F
→
11/30 18:05, , 6F
11/30 18:05, 6F
推
11/30 18:34, , 7F
11/30 18:34, 7F