簡體   English   中英

從 0 到 1000 的隨機數 Math.random()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM