[英]Random Number from 0 to 1000 Math.random()
目前正在編寫家庭作業程序,我對通常使用的正常公式的一個方面感到困惑
Math.random() * (max - min) + min
我知道這在1 - 1000
的范圍內工作得很好。
現在,為我的無知感到抱歉,如果這是一個愚蠢的問題......但是如果我想要一個范圍從0 - 1000
,這仍然有效嗎?
由於范圍1 - 1000
會將(max - min)
設置為 999,然后乘以Math.random()
然后添加min
... 范圍0 - 1000
會將(max - min)
設置為 1000 並且不會添加任何內容結束,因為它仍然是 0。如果我將min
設置為 0,將max
設置為 1000,這仍然有效嗎? 或者我必須通過不同的路線/公式到達 go 嗎?
Math.random() 返回范圍為 0 到 1 的隨機 nr,因此要獲得 0 到 1000 的范圍,您需要做的就是乘以 1000。無需添加任何內容,因此公式仍然有效
讓我們分解公式看看它是否有幫助!
假設Math.random()
返回一個 double 值 0 <= value < 1 ,當:
min = 1
,公式返回 1 ( 0 * (1000 - 1) + 1 = 1
) 和 999 ( 0.999999... * (1000 - 1) + 1 = 999
) 之間的值min = 0
,公式返回 0 ( 0 * (1000 - 0) + 0 = 0
) 和 999 ( 0.999999... * (1000 - 0) + 0 = 999
) 之間的值因此, min = 0
按您的預期工作,但您似乎在公式的范圍項中缺少+1 :
使用 Math.random() 生成范圍內的 integer 隨機數是通過以下公式完成的: (int)(Math.random() * ((max - min) + 1)) + min
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.