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]