簡體   English   中英

我想在java中給定范圍內生成隨機數

[英]I want to generate random numbers within given range in java

為此,我得到了解決方案,但我不明白:我使用了below函數來生成給定范圍內的隨機數,但是below函數的含義是什么?

static int randomRangeInNumber(int min, int max) {
    Random r=new Random();
    return r.nextInt((max-min)+1)+min;
}

我沒有得到的退貨請幫助我理解其含義,將不勝感激

nextInt(int bound)的文檔說

返回一個偽隨機數,它從此隨機數生成器的序列中提取,在0(含)和指定值(不含)之間均勻分布的int值。

所以你的nextInt電話是

  1. 取返回值,范圍為[0..bound](界限為(max-min)+1 ),然后
  2. +min將其縮放到[min..max]范圍。
return r.nextInt((max-min)+1)+min;
       \__________1_________/\_2_/

nextInt通常不包含最高值,因此加1使其包含在內

因此,在您的情況下,我們說max為10, min為5。

nextInt(n)將為您提供0到n-1之間的隨機數。

因此,加上+1將使您包括n的值。

nextInt(max-min)為您提供一個在0和nextInt(max-min)之間的隨機數(在這種情況下,由於+1而包括了5)

然后再次加上min ,表示它將為您提供上述隨機數,但將其加5,因此結果將是5到10之間的隨機數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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