要生成在[min,max]之間的隨機整數,
01 | package edu.sjtu.erplab.io; |
03 | import java.util.Random; |
05 | public class RandomTest { |
06 | public static void main(String[] args) { |
09 | Random random = new Random(); |
11 | int s = random.nextInt(max)%(max-min+ 1 ) + min; |
12 | System.out.println(s); |
random.nextInt(max)表示生成[0,max]之間的隨機數,然后對(max-min+1)取模。
以生成[10,20]隨機數為例,首先生成0-20的隨機數,然后對(20-10+1)取模得到[0-10]之間的隨機數,然后加上min=10,最后生成的是10-20的隨機數
生成0-2之間的隨機數,包括2
1 | Random rand = new Random(); |
2 | int randNum = rand.nextInt( 3 ); |
生成5-26之間的隨機數,包括26
1 | int randNum = rand.nextInt( 22 )+ 5 ; |
工作當中許多地方會遇到,需要獲取某指定范圍內的隨機數。直接利用Java給的的API中的函數不能滿足,需要做些改變。
實例:產生10個指定范圍內的隨機數。
01 | public class RandomTest { |
02 | public static void main(String[] args) { |
06 | Random random = new Random(); |
07 | for ( int i= 0 ; i< 10 ; i++){ |
08 | int n = random.nextInt(max-min+ 1 )+min; |
09 | System.out.print(n+ " " ); |
12 | for ( int i= 0 ; i< 10 ; i++){ |
13 | int n = ( int )(Math.random()*(max-min+ 1 )+min); |
14 | System.out.print(n+ " " ); |
要生成在[min,max]之間的隨機整數
01 | import java.util.Random; |
02 | public class RandomTest { |
03 | public static void main(String[] args) { |
06 | Random random = new Random(); |
09 | int s = random.nextInt(max-min+ 1 ) + min; |
11 | System.out.println(s); |