我需要在 Java/Kotlin(適用于 Android)中生成隨機數,特別是使用 Mersenne Twister 算法。我已經嘗試使用 Apache commons-math Mersenne Twister 實現,它非常適合生成隨機整數。但是我需要為這些指定一個相當小的范圍,整數必須在 1 到 100 之間。似乎無法使用 Apache 實現來指定上限和下限。有誰知道 Java/Kotlin 的任何替代 Mersenne Twister 選項接受生成的 nextInt 的界限?
1 回答

森欄
TA貢獻1810條經驗 獲得超5個贊
據我所知,您可以將生成的 int 的上邊界傳遞給 nextInt 方法,因此可以像這樣編寫簡單的擴展函數:
fun MersenneTwister.nextInt(min: Int, max: Int) = min + nextInt(max - min)
請注意,像 MT 的 nextInt 結果不包括上邊界,因此如果您需要此行為,您可能需要將 1 添加到 nextInt 的參數。
另外注意,這個功能我沒有測試好,所以在使用之前自己動手吧。
添加回答
舉報
0/150
提交
取消