Java 隨機數的生成 學習筆記

java中有一方法可生成隨機數,Math.random(),但是其取值範圍爲[0,1)

需求1:如果想生成[0,20]之間的隨機數,該怎麼辦呢?

思路:先讓 [0,1)*21,然後做取整操作可得到[0 ,20]

需求2:如果想生成[30,50]之間的隨機數,該怎麼辦呢?

思路:[0 ,20] + 30 ==>[30, 50]

需求3:如果想生成[m,n]之間的隨機數,該怎麼辦呢?

思路:[0, 1) * ? ==> [0, ?) + m ==> [m, ?+m) 取整 ==> [m, ?+m-1)
           解得:? = n + m - 1

           所以:(int)(num * (n - m + 1) + m)==>[m,n]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章