軟件中經(jīng)常需要產(chǎn)生隨機數(shù)。比如游戲中常用隨機數(shù)代表投骰子或者洗牌,抽獎經(jīng)常用隨機數(shù)模擬抽獎概率。在 Java 中,有一個 Random 類專門用來模擬隨機數(shù)。接下來,就讓小編帶你了解一下這個類。
生成整型的隨機數(shù)
使用 Random 類的 ?nextInt()
?方法,可以生成一個范圍為整個 int 取值區(qū)間的 int 類型隨機數(shù)。
?nextInt()
? 方法可以傳入一個 int 類型的參數(shù),傳參情況下生成的隨機數(shù)范圍是從 0 到該參數(shù)的范圍。
生成浮點型的隨機數(shù)
使用 Random 類的? nextFloat()
?/?nextDouble()
? 方法,可以生成一個范圍為0到1.0范圍內(nèi)的浮點型隨機數(shù)(兩種方法產(chǎn)生的隨機數(shù)精度不同)。
Random的其他方法
使用 Random 類的 ?nextGaussian()
? 方法,可以生成一個偽高斯分布的均值為0.0,標準差為1.0從此隨機數(shù)生成器的序列的 double 值。
import java.util.Random;
public class RandomNumbers{
public static void main(String[] args) {
int num1 = new Random().nextInt();//使用Random的nextInt方法生成int類型隨機數(shù),范圍為整個int的取值區(qū)間
System.out.println(num1);
int num2=new Random().nextInt(10);//使用Random的nextInt方法生成int類型隨機數(shù),范圍為0到輸入?yún)?shù)的取值區(qū)間
System.out.println(num2);
num2 = new Random().nextInt(10)+10;//通過加減法,修改最終生成隨機數(shù)的生成范圍
float num3 =new Random().nextFloat();
//使用Random的nextFloat方法生成float類型隨機數(shù),范圍為0d到1.0區(qū)間的浮點隨機數(shù)
System.out.println(num3);
double num4 =new Random().nextDouble();
//使用Random的nextDouble方法生成double類型隨機數(shù),范圍為0d到1.0區(qū)間的浮點隨機數(shù)
System.out.println(num4);
double num5 = new Random().nextGaussian();
//生成一個偽高斯分布的均值為0.0,標準差為1.0從此隨機數(shù)生成器的序列的double值。
System.out.println(num5);
}
}
更多技巧
可以通過加減乘除,來擴大縮小,或者移動區(qū)間的范圍。
在生成的隨機數(shù)后面加10,可以讓所有生成的隨機數(shù)都加10,從而使隨機數(shù)生成的區(qū)間范圍向右移動。
在生成的隨機數(shù)后面*10,可以讓所有生成的隨機數(shù)都擴大10倍,從而使隨機數(shù)生成的區(qū)間范圍擴大10倍。
小結(jié)
以上關(guān)于 Java 的 Random 的類的介紹就到這里,更多Java技術(shù)學(xué)習(xí),請關(guān)注菜鳥自學(xué)java教程。