App下載

Java怎么生成隨機(jī)數(shù)?Random類(lèi)有哪些用法?

猿友 2021-05-19 18:04:53 瀏覽數(shù) (3557)
反饋

軟件中經(jīng)常需要產(chǎn)生隨機(jī)數(shù)。比如游戲中常用隨機(jī)數(shù)代表投骰子或者洗牌,抽獎(jiǎng)經(jīng)常用隨機(jī)數(shù)模擬抽獎(jiǎng)概率。在 Java 中,有一個(gè)  Random 類(lèi)專門(mén)用來(lái)模擬隨機(jī)數(shù)。接下來(lái),就讓小編帶你了解一下這個(gè)類(lèi)。

生成整型的隨機(jī)數(shù)

使用 Random 類(lèi)的 ?nextInt() ?方法,可以生成一個(gè)范圍為整個(gè) int 取值區(qū)間的 int 類(lèi)型隨機(jī)數(shù)。

 ?nextInt()? 方法可以傳入一個(gè) int 類(lèi)型的參數(shù),傳參情況下生成的隨機(jī)數(shù)范圍是從 0 到該參數(shù)的范圍。

生成浮點(diǎn)型的隨機(jī)數(shù)

使用 Random 類(lèi)的? nextFloat()?/?nextDouble()? 方法,可以生成一個(gè)范圍為0到1.0范圍內(nèi)的浮點(diǎn)型隨機(jī)數(shù)(兩種方法產(chǎn)生的隨機(jī)數(shù)精度不同)。

Random的其他方法

使用 Random 類(lèi)的 ?nextGaussian()? 方法,可以生成一個(gè)偽高斯分布的均值為0.0,標(biāo)準(zhǔn)差為1.0從此隨機(jī)數(shù)生成器的序列的 double 值。

import java.util.Random;

public class RandomNumbers{
    public static void main(String[] args) {
        int num1 = new Random().nextInt();//使用Random的nextInt方法生成int類(lèi)型隨機(jī)數(shù),范圍為整個(gè)int的取值區(qū)間
        System.out.println(num1);
        int num2=new Random().nextInt(10);//使用Random的nextInt方法生成int類(lèi)型隨機(jī)數(shù),范圍為0到輸入?yún)?shù)的取值區(qū)間
        System.out.println(num2);
        num2 = new Random().nextInt(10)+10;//通過(guò)加減法,修改最終生成隨機(jī)數(shù)的生成范圍
        float num3 =new Random().nextFloat();
        //使用Random的nextFloat方法生成float類(lèi)型隨機(jī)數(shù),范圍為0d到1.0區(qū)間的浮點(diǎn)隨機(jī)數(shù)
        System.out.println(num3);
        double num4 =new Random().nextDouble();
        //使用Random的nextDouble方法生成double類(lèi)型隨機(jī)數(shù),范圍為0d到1.0區(qū)間的浮點(diǎn)隨機(jī)數(shù)
        System.out.println(num4);
        double num5 = new Random().nextGaussian();
        //生成一個(gè)偽高斯分布的均值為0.0,標(biāo)準(zhǔn)差為1.0從此隨機(jī)數(shù)生成器的序列的double值。
        System.out.println(num5);
    }
}

更多技巧

可以通過(guò)加減乘除,來(lái)擴(kuò)大縮小,或者移動(dòng)區(qū)間的范圍。

在生成的隨機(jī)數(shù)后面加10,可以讓所有生成的隨機(jī)數(shù)都加10,從而使隨機(jī)數(shù)生成的區(qū)間范圍向右移動(dòng)。

在生成的隨機(jī)數(shù)后面*10,可以讓所有生成的隨機(jī)數(shù)都擴(kuò)大10倍,從而使隨機(jī)數(shù)生成的區(qū)間范圍擴(kuò)大10倍。

小結(jié)

以上關(guān)于 Java 的 Random 的類(lèi)的介紹就到這里,更多Java技術(shù)學(xué)習(xí),請(qǐng)關(guān)注菜鳥(niǎo)自學(xué)java教程

0 人點(diǎn)贊