我有5個骰子,我把他們每個人擲一次:說結果是骰子[] = {1,1,1,1,1}來映射一個數組範圍內的數字,以統一隨機1到100
這骰子[]數組是輸入到功能說
int random (dice) {
//do some thing with the dice values { 1, 1, 1, 1, 1 } (as input from user)
//return a uniform random number between 1 to 100
}
規則:只隨機源是骰子數組中的值。我怎麼可能每個值的數量在1到100,這樣得到的數值幾乎是一致的一代
請幫助
不要忘記添加一個將範圍從[0,99]移至[1,100]。有些垃圾箱比其他垃圾箱稍多一些,但這是不可避免的,因爲6 ** 5不能被100整除。 – pjs
@pjs哦,關於+1的好點。我知道這不是完全統一的,但是指定了「幾乎統一的一代」的問題。 –
是的,我注意到「幾乎」。我仍然明確地檢查了它,並且二進制計數都是77或78,即它們只相差一個。我看不出如何做得更好。 – pjs