最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaSE API實(shí)現(xiàn)生成隨機(jī)數(shù)的2種方法(Random類和Math類的Random方法)

 更新時(shí)間:2023年10月16日 09:05:54   作者:_esther_  
本文主要介紹了JavaSE API實(shí)現(xiàn)生成隨機(jī)數(shù)的2種方法,主要包括Random類和Math類的random方法都可以用來(lái)生成隨機(jī)數(shù),具有一定的參考價(jià)值,感興趣的可以了解一下

生成隨機(jī)數(shù)的兩種方法

Random類和Math類的random方法都可以用來(lái)生成隨機(jī)數(shù)
而Math類的random方法則是基于系統(tǒng)時(shí)間的偽隨機(jī)數(shù)生成器,大于等于0.0小于1.0的隨機(jī)double值范圍[0,1)。例如: double num1 = Math.random() * 5 + 4;//范圍[4,9)
Random類是基于種子的偽隨機(jī)數(shù)生成器,有含參數(shù)和不含參數(shù)兩種構(gòu)造方式,不含參數(shù)的構(gòu)造方法每次都使用當(dāng)前系統(tǒng)時(shí)間作為種子,而含餐構(gòu)造是使用一個(gè)固定值(參數(shù)n)作為種子范圍[0,n)。例如:Random rd1 = new Random(); double num2 = rd1.nextDouble(); Random rd2 = new Random(10); double num3 = rd2.nextDouble();

Math.random() 無(wú)參調(diào)用,返回值為 double,大于等于 0.0 ,小于 1.0。范圍[0.0,1.0)

static double random?() 返回值為 double的正值,大于等于 0.0 ,小于 1.0 。

double randomDouble = Math.random(); // 生成[0,1)之間的隨機(jī)小數(shù)
int randomNumber = (int) (2 + Math.random() * 101); // 生成[2,103)之間的隨機(jī)整數(shù)

Random類對(duì)象的next()方法,可有參。從這個(gè)隨機(jī)數(shù)生成器的序列返回下一個(gè)偽隨機(jī)數(shù),均勻分布的 int值。

protected int next?(int bits) 生成下一個(gè)偽隨機(jī)數(shù)。  
boolean nextBoolean?() 從該隨機(jī)數(shù)生成器的序列返回下一個(gè)偽隨機(jī)數(shù),均勻分布的 boolean值。  
void nextBytes?(byte[] bytes) 生成隨機(jī)字節(jié)并將它們放入用戶提供的字節(jié)數(shù)組中。  
double nextDouble?() 返回下一個(gè)偽,均勻分布 double之間價(jià)值 0.0和 1.0從這個(gè)隨機(jī)數(shù)生成器的序列。  
float nextFloat?() 返回下一個(gè)偽,均勻分布 float之間價(jià)值 0.0和 1.0從這個(gè)隨機(jī)數(shù)生成器的序列。  
double nextGaussian?() 從該隨機(jī)數(shù)發(fā)生器的序列返回下一個(gè)偽隨機(jī)數(shù),高斯(“正”)分布的 double值,平均值為 0.0 ,標(biāo)準(zhǔn)偏差為 1.0 。  
int nextInt?() 從這個(gè)隨機(jī)數(shù)生成器的序列返回下一個(gè)偽隨機(jī)數(shù),均勻分布的 int值。  
int nextInt?(int bound) 返回偽隨機(jī)的,均勻分布 int值介于0(含)和指定值(不包括),從該隨機(jī)數(shù)生成器的序列繪制。  
long nextLong?() 返回下一個(gè)偽隨機(jī)數(shù),從這個(gè)隨機(jī)數(shù)發(fā)生器的序列中均勻分布 long值。 

 public static void main(String[] args) {
        //測(cè)試一下生成隨機(jī)數(shù)的兩種方法
        int i = 0;
        for (i = 0; i < 10000; i++) {
            System.out.println("=====================================");
            double numDouble1 = Math.random();
            int numInt1 = (int)(Math.random()*(10));
            System.out.println("Math.random的隨機(jī)浮點(diǎn)數(shù)[0.0,1.0):" + numDouble1);
            System.out.println("Math.random的隨機(jī)整數(shù)[0,9]" + numInt1);
            System.out.println("---------------------------------------");

            Random rd = new Random();
            double numDouble2 = rd.nextDouble();
            int numInt2 = rd.nextInt();
            int numInt3 = rd.nextInt();

            int numInt4 = rd.nextInt(4);
            int numInt5 = rd.nextInt(4);
            System.out.println("Random對(duì)象的無(wú)參隨機(jī)浮點(diǎn)數(shù)[0.0,1.0]:" + numDouble2);//不知道邊界情況,沒(méi)人說(shuō)過(guò),只說(shuō)之間。不管了,反正都用Math類
            System.out.println("Random對(duì)象的無(wú)參隨機(jī)整數(shù)[-整數(shù),整數(shù)]:"  + numInt2 + "," + numInt3);
            System.out.println("Random對(duì)象的參數(shù)構(gòu)造[0,4):" + numInt5 + "," + numInt4);

        }
        System.out.println("執(zhí)行" + i + "次");
    }
}

Random有參構(gòu)造后,調(diào)用方法生成隨機(jī)數(shù),數(shù)完全相同

只要Random構(gòu)造的參數(shù)固定,生成的隨機(jī)數(shù)也固定,完全不隨機(jī)。不推薦使用

         System.out.println("--------------------------------------");
            Random rd1 = new Random(10);
            double numDouble3 = rd1.nextDouble();
            Random rd2 = new Random(10);
            double numDouble4 = rd2.nextDouble();
            System.out.println("參數(shù)10的Random對(duì)象生成的隨機(jī)浮點(diǎn)數(shù)" + numDouble3 + "," + numDouble4);//因?yàn)榉N子相同,所以生成的數(shù)也相同
            System.out.println("參數(shù)10的Random對(duì)象生成的隨機(jī)整數(shù)[0,5):" + numInt6 );

其中三次運(yùn)行結(jié)果

=====================================
Math.random的隨機(jī)浮點(diǎn)數(shù)[0.0,1.0):0.7142916697602802
Math.random的隨機(jī)整數(shù)[0,9]:6
---------------------------------------
Random對(duì)象的無(wú)參隨機(jī)浮點(diǎn)數(shù)[0.0,1.0]:0.6315568322991557
Random對(duì)象的無(wú)參隨機(jī)整數(shù)[-整數(shù),整數(shù)]:73848388,929911462
Random對(duì)象的參數(shù)構(gòu)造[0,4):0,0
--------------------------------------
參數(shù)10的Random對(duì)象生成的隨機(jī)浮點(diǎn)數(shù):0.7304302967434272,0.7304302967434272
參數(shù)10的Random對(duì)象生成的隨機(jī)整數(shù)[0,5):3
=====================================
Math.random的隨機(jī)浮點(diǎn)數(shù)[0.0,1.0):0.6622105346737387
Math.random的隨機(jī)整數(shù)[0,9]:4
---------------------------------------
Random對(duì)象的無(wú)參隨機(jī)浮點(diǎn)數(shù)[0.0,1.0]:0.7790519044760864
Random對(duì)象的無(wú)參隨機(jī)整數(shù)[-整數(shù),整數(shù)]:-1185189383,-718067040
Random對(duì)象的參數(shù)構(gòu)造[0,4):2,2
--------------------------------------
參數(shù)10的Random對(duì)象生成的隨機(jī)浮點(diǎn)數(shù):0.7304302967434272,0.7304302967434272
參數(shù)10的Random對(duì)象生成的隨機(jī)整數(shù)[0,5):3
=====================================
Math.random的隨機(jī)浮點(diǎn)數(shù)[0.0,1.0):0.4240920821616745
Math.random的隨機(jī)整數(shù)[0,9]:8
---------------------------------------
Random對(duì)象的無(wú)參隨機(jī)浮點(diǎn)數(shù)[0.0,1.0]:0.36926846454559725
Random對(duì)象的無(wú)參隨機(jī)整數(shù)[-整數(shù),整數(shù)]:1829129943,120476504
Random對(duì)象的參數(shù)構(gòu)造[0,4):2,0
--------------------------------------
參數(shù)10的Random對(duì)象生成的隨機(jī)浮點(diǎn)數(shù):0.7304302967434272,0.7304302967434272
參數(shù)10的Random對(duì)象生成的隨機(jī)整數(shù)[0,5):3

總結(jié):
1.Math.random方法明確范圍[0,1)
2.Random類無(wú)參構(gòu)造時(shí),無(wú)參調(diào)用方法生成隨機(jī)數(shù)都為該類型數(shù)的范圍,但如double為0.0~1.0之間但不清楚邊界包含情況,慎用
3.Random類有參構(gòu)造時(shí),若參數(shù)固定,不管有參還是無(wú)參調(diào)用方法得到的數(shù)都相同如

			Random rd2 = new Random(10);
            double numDouble4 = rd2.nextDouble();//循環(huán)多少次都固定產(chǎn)生0.7304302967434272
            int numInt6 = rd2.nextInt(5);//固定產(chǎn)生3

到此這篇關(guān)于JavaSE API實(shí)現(xiàn)生成隨機(jī)數(shù)的2種方法(Random類和Math類的Random方法)的文章就介紹到這了,更多相關(guān)JavaSE 生成隨機(jī)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • javaweb如何實(shí)現(xiàn)請(qǐng)求和響應(yīng)

    javaweb如何實(shí)現(xiàn)請(qǐng)求和響應(yīng)

    這篇文章主要為大家詳細(xì)介紹了javaweb如何實(shí)現(xiàn)請(qǐng)求和響應(yīng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Spring?Boot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Unable?to?start?web?server解決方法

    Spring?Boot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Unable?to?start?web?server解決方法

    這篇文章主要給大家介紹了關(guān)于Spring?Boot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Unable?to?start?web?server的解決方法,錯(cuò)誤內(nèi)容大概的意思是未能加載嵌入的供web應(yīng)用加載的空間,是因?yàn)槿鄙賁ervletWebServerFactorybean,需要的朋友可以參考下
    2024-07-07
  • Spring模塊詳解之Spring ORM和Spring Transaction詳解

    Spring模塊詳解之Spring ORM和Spring Transaction詳解

    Spring ORM 是 Spring 框架的模塊之一,旨在簡(jiǎn)化與 JPA、Hibernate、JDO 等 ORM 工具的集成,通過(guò)提供統(tǒng)一的 API 和模板類,如 HibernateTemplate 和 JpaTemplate,Spring ORM 使開發(fā)者可以更便捷地執(zhí)行數(shù)據(jù)庫(kù)操作,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • servlet上傳文件實(shí)現(xiàn)代碼詳解(四)

    servlet上傳文件實(shí)現(xiàn)代碼詳解(四)

    這篇文章主要為大家詳細(xì)介紹了servlet上傳文件的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 使用Jenv管理多版本JDK環(huán)境的詳細(xì)教程

    使用Jenv管理多版本JDK環(huán)境的詳細(xì)教程

    在現(xiàn)代 Java 開發(fā)中,我們經(jīng)常需要在不同的項(xiàng)目中使用不同版本的 JDK,手動(dòng)切換 JAVA_HOME 環(huán)境變量既繁瑣又容易出錯(cuò),Jenv 是一個(gè)優(yōu)秀的 JDK 版本管理工具,可以讓我們輕松地在不同 JDK 版本間切換,所以本文給大家介紹了使用Jenv管理多版本JDK環(huán)境的詳細(xì)教程
    2025-08-08
  • 淺析Java單例設(shè)計(jì)模式(自寫demo)

    淺析Java單例設(shè)計(jì)模式(自寫demo)

    Java單例模式是看起來(lái)以及用起來(lái)簡(jiǎn)單的一種設(shè)計(jì)模式,但是就實(shí)現(xiàn)方式以及原理來(lái)說(shuō),也并不淺顯,下面這篇文章主要給大家詳細(xì)介紹了Java中單例模式,需要的朋友可以參考下
    2021-12-12
  • Springboot WebFlux集成Spring Security實(shí)現(xiàn)JWT認(rèn)證的示例

    Springboot WebFlux集成Spring Security實(shí)現(xiàn)JWT認(rèn)證的示例

    這篇文章主要介紹了Springboot WebFlux集成Spring Security實(shí)現(xiàn)JWT認(rèn)證的示例,幫助大家更好的理解和學(xué)習(xí)使用springboot框架,感興趣的朋友可以了解下
    2021-04-04
  • springMVC圖片上傳的處理方式詳解

    springMVC圖片上傳的處理方式詳解

    這篇文章主要為大家詳細(xì)介紹了springMVC圖片上傳的處理方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Java基礎(chǔ)知識(shí)之I/O流和File類文件操作

    Java基礎(chǔ)知識(shí)之I/O流和File類文件操作

    眾所周知java語(yǔ)言提供給程序員非常多的包供編程時(shí)使用,方便又快捷,下面這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)知識(shí)之I/O流和File類文件操作的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Mybatis?Example的高級(jí)用法詳解

    Mybatis?Example的高級(jí)用法詳解

    這篇文章主要介紹了Mybatis?Example的高級(jí)用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評(píng)論

西林县| 自贡市| 乌拉特后旗| 大埔区| 台中县| 金平| 天台县| 高阳县| 长兴县| 平阴县| 昭平县| 禹州市| 汶上县| 翼城县| 龙游县| 漾濞| 万盛区| 伊金霍洛旗| 冀州市| 和平县| 通州市| 涟源市| 福鼎市| 怀仁县| 四川省| 望谟县| 台北市| 尼勒克县| 沅江市| 高阳县| 曲沃县| 富裕县| 泉州市| 龙口市| 奇台县| 马边| 门头沟区| 万州区| 镇平县| 宁阳县| 普兰店市|