2
如何使用生成介於1和3之間的數字的函數來生成介於1和9之間的數字?獲得1到9之間任意數字的概率必須相同,所以rand3()+ rand3()+ rand3()不是一個好的解決方案。使用Rand3()的隨機生成器Rand9()
如何使用生成介於1和3之間的數字的函數來生成介於1和9之間的數字?獲得1到9之間任意數字的概率必須相同,所以rand3()+ rand3()+ rand3()不是一個好的解決方案。使用Rand3()的隨機生成器Rand9()
嘗試直角狀產品:
Rand9() = 3 * (Rand3() - 1) + Rand3()
隨着3 *(Rand3() - 1)你讓子區間1-3,4-6和7-9同樣可能。使用+ Rand3(),您將在該子區間上同樣選擇。
寫爲產物:
3 * (Rand3() - 1) + Rand3() -> {1, 4, 7} X {+1,+2,+3} -> {1,2,3,4,5,6,7,8,9}
的子區間都爲0,3和6,而不是1,4和7 :) –