1. 程式人生 > 其它 >如何用java生成指定範圍的隨機數

如何用java生成指定範圍的隨機數

以生成[10,20]隨機數為例,首先生成0-20的隨機數,然後對(20-10+1)取模得到[0-10]之間的隨機數,然後加上min=10,最後生成的是10-20的隨機數  

要生成在[min,max]之間的隨機整數,

1 2 3 4 5 6 7 8 9 10 11 12 13 14 package edu.sjtu.erplab.io;   import java.util.Random;   public class RandomTest {   public static void main(String[] args) {     int max=20;     int min=10;     Random random = new Random();       int s = random.nextInt(max)%(max-min+
1) + min;     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 2 Random rand = new Random(); int randNum = rand.nextInt(3);

生成5-26之間的隨機數,包括26

1 int randNum = rand.nextInt(22)+5;

工作當中許多地方會遇到,需要獲取某指定範圍內的隨機數。直接利用Java給的的API中的函式不能滿足,需要做些改變。

例項:產生10個指定範圍內的隨機數。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class RandomTest {   public static void main(String[] args) {     int max = 10;     int min = 2;     //生成10個指定範圍的隨機數     Random random =
new Random();     for(int i=0; i<10; i++){       int n = random.nextInt(max-min+1)+min;       System.out.print(n+" ");     }     System.out.println();     for(int i=0; i<10; i++){       int n = (int)(Math.random()*(max-min+1)+min);       System.out.print(n+" ");     }   } }

要生成在[min,max]之間的隨機整數

1 2 3 4 5 6 7 8 9 10 11 12 13 import java.util.Random; public class RandomTest {   public static void main(String[] args) {     int min=10;     int max=20;     Random random = new Random();       //int s = random.nextInt(max)%(max-min+1) + min;      int s = random.nextInt(max-min+1) + min;       System.out.println(s);   } }