方法一:呼叫java.lang下面Math類別中的random()方法產生隨機數字
新建一個文件後綴名為java的文件,文件名取為MyRandom,該類別中寫如下的程式碼:
public class MyRandom { public static void main(String[] args) { int radom = (int)(Math.random()*10); System.out.println(radom); } }
其中Math.random()為產生0~1之間的一個隨機小數。
產生一個0~9之間的整數為:(int)(Math.random()*10)
產生一個1~10之間的整數則可以寫著:(int)(Math.random()*10 1)
以此類推:產生一個0~n之間的數就該寫: Math.random()*n
取出一個指定長度大小的隨機正整數:
public static int buildRandom(int length) { int num = 1; double random = Math.random(); if (random < 0.1) { random = random + 0.1; } for (int i = 0; i < length; i++) { num = num * 10; } return (int) ((random * num)); }
方法二:呼叫java.util下面Random類別,此類的實例用於產生偽隨機數流,產生一個隨機整數,則呼叫該類別的nextInt()方法,使用Random類別之前,則在套件下導入java.util.Random
,程式碼如下:
import java.util.Random; public class MyRandom { public static void main(String[] args) { Random rand = new Random(); int rInt = rand.nextInt(10); System.out.println(rInt); } }
其中Random rand = new Random()
是建立一個新隨機數產生器;rand.nextInt(int n)
是從此隨機數產生器的序列中取出的、在0(包括)和指定值n(不包括)之間均勻分佈的int值。
Java中在指定的整數範圍類,循環產生不相同的隨機數。
以產生6位元20以內不相同的隨即整數為例如下:
public class MyRandom { public static void main(String[] args) { int n = 20; Random rand = new Random(); boolean[] bool = new boolean[n]; int randInt = 0; for(int i = 0; i < 6 ; i++) { do { randInt = rand.nextInt(n); }while(bool[randInt]); bool[randInt] = true; System.out.println(randInt); } } }
其中,用布林變數數組來儲存是否產生了該數字。生成後,該數字作為布林數組下表的對應布林值變成了true,下一次生成該數字就會再次進入do...while循環生成數字直到產生沒有生成過的數字。
推薦教學:java開發入門
以上是java中使用什麼方法產生不重複隨機數的詳細內容。更多資訊請關注PHP中文網其他相關文章!