久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié))

瀏覽:3日期:2022-08-22 17:45:37

人機(jī)交互過程中,當(dāng)我們需要機(jī)器給我們反饋不確定的數(shù)字結(jié)果時(shí),就會(huì)需要用到隨機(jī)數(shù)了,那么,在Java中,我們應(yīng)當(dāng)如何來生成并使用隨機(jī)數(shù)呢?

一、通過Random類來實(shí)現(xiàn)

Random類是JDK的java.util包中的一個(gè)工具類,該類可用于在指定范圍內(nèi)產(chǎn)生隨機(jī)數(shù)字。考察一下Random類的兩種構(gòu)造方法:無參構(gòu)造和有參構(gòu)造

Random(); 無參構(gòu)造方法創(chuàng)建一個(gè)偽隨機(jī)數(shù)生成器。Random(long seed);有參構(gòu)造方法使用一個(gè)long型的種子創(chuàng)建偽隨機(jī)數(shù)生成器。下面分別使用兩種方式創(chuàng)建Random對(duì)象來獲取10個(gè)0到100的隨機(jī)數(shù)

無參構(gòu)造方式

public class demo1 { public static void main(String[] args) { Random random = new Random(); for (int i = 0; i < 10; i++) { System.out.println(random.nextInt(100)); } }

運(yùn)行結(jié)果:

Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié))

這里總結(jié)一個(gè)應(yīng)用random.nextInt()的式子:random.nextInt(n)+m,返回的是m到m+n-1之間的隨機(jī)數(shù)。比如random.nextInt(9)+1,得到就是1到10之間的某數(shù),如果沒有n和m,那么就是生成一個(gè)隨機(jī)的int類型的值。當(dāng)然除了int類型,也可以生成其他數(shù)字型的基本數(shù)據(jù)類型的隨機(jī)數(shù),比如double、float、byte等等。

nextDouble()方法返回的是0.0到1.0之間的一個(gè)double類型的值 nextFloat()方法返回的是0.0到1.0之間的一個(gè)float類型的值

有參構(gòu)造方式

public class demo1 { public static void main(String[] args) { Random random = new Random(); for (int i = 0; i < 10; i++) { System.out.println(random.nextInt(100)); } Random random1 = new Random(100); System.out.println('---------'); for(int i = 0 ;i<10;i++){ System.out.println(random1.nextInt(100)); } }

這里為了方便跟無參構(gòu)造方法創(chuàng)建的隨機(jī)數(shù)生成器作比較,創(chuàng)建了兩個(gè)Random對(duì)象。

運(yùn)行結(jié)果:

Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié))

再執(zhí)行一次代碼的結(jié)果:

Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié))

怎么樣?是不是發(fā)現(xiàn)下面的有參構(gòu)造生成的隨機(jī)數(shù)每次運(yùn)行結(jié)果都是一樣的,而無參構(gòu)造方法的random對(duì)象每次都能得到不同的隨機(jī)數(shù)。

這里的原因是:無參構(gòu)造方法在創(chuàng)建Random對(duì)象時(shí)沒有傳入種子參數(shù),程序會(huì)自動(dòng)以當(dāng)前時(shí)間為時(shí)間戳,于是每一次的運(yùn)行結(jié)果都是不同的。而有參構(gòu)造方法創(chuàng)建Random對(duì)象時(shí)傳入了種子參數(shù),兩次運(yùn)行時(shí)種子相同,實(shí)際上不管運(yùn)行多少次,結(jié)果都是一樣的。

二、使用Math類的random方法

Java中的Math類也提供了一個(gè)生成隨機(jī)數(shù)的random方法。首先需要明確,Math.random()是隨機(jī)生成一個(gè)0.0到1.0之間的double類型的隨機(jī)數(shù),這里包含0而不包含1。

常見的用法:

public class demo1 { public static void main(String[] args) { for (int i = 0; i < 3; i++) { System.out.println((int) (Math.random() * 10)); } }

Math.random()生成0到1之間的double數(shù),乘以10就變成了0到10之間的double數(shù),再轉(zhuǎn)成int型,這是我平時(shí)接觸比較多的用法(通常我們使用隨機(jī)數(shù)也是int類型的居多)。運(yùn)行結(jié)果如下(3個(gè)0到10之間的整數(shù)):

Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié))

根據(jù)需要可以靈活使用random()方法:

(int)(Math.random()*n)生成大于等于0小于n的隨機(jī)數(shù)。 (int)(Math.randon()*n)+m生成大于等于m小于m+n的之間的隨機(jī)數(shù)。 (int)(Math.random()*(n-m)+m)生成從m到n范圍內(nèi)的數(shù),包含m不包含n。

另外,我們還可以用這種方式生成字符:

隨機(jī)生成a~z之間的字符(char)(‘a(chǎn)’+Math.random()*(‘z’-‘a(chǎn)’+1));

隨機(jī)生成cha1~cha2的字符(char)(cha1+Math.random()*(cha2-cha1+1));

小結(jié)

以上就是近期自己總結(jié)的兩種Java中生成隨機(jī)數(shù)的方法,實(shí)際上打開Math類中的random方法的源碼我們可以發(fā)現(xiàn),這個(gè)方法就是直接調(diào)用Random類中的nextDouble方法來實(shí)現(xiàn)的。至于實(shí)際使用看個(gè)人愛好吧,比較推薦直接使用Math類的random方法,要記住的是,以上兩種方法生成的隨機(jī)數(shù)都是會(huì)重復(fù)的,如果有不能重復(fù)的需求,則需要添加其他操作了。

到此這篇關(guān)于Java兩種常用的隨機(jī)數(shù)生成方式(小白總結(jié))的文章就介紹到這了,更多相關(guān)Java 隨機(jī)數(shù)生成內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产一级一级国产 | 国产一区中文字幕 | 精品国产一区二区三区久久 | 国产日韩精品视频 | 91日韩精品一区二区三区 | 中文在线一区 | 麻豆一区 | 国产一级片免费观看 | 久久久久久国产 | 天天操天操 | 国产91亚洲精品久久久 | 亚洲精品一区二三区 | 久久99久久99精品免视看婷婷 | 在线播放亚洲 | 亚洲天堂一区 | 国产综合久久 | aaaaaa黄色片| 超碰c | 高清一区二区三区 | 久久久亚洲一区 | 日韩精品一区在线 | 免费观看羞羞视频网站 | 男女网站在线观看 | 99精品视频在线 | 精品乱子伦一区二区三区 | 亚洲一区在线视频 | 老司机深夜福利视频 | 成人深夜免费视频 | 亚洲a网 | a免费在线观看 | 久久久久久国产精品久久 | 亚洲一二视频 | 国产色视频在线观看免费 | 久久精品成人一区二区三区蜜臀 | 伊人伊人网| 综合色久 | 嫩草研究院在线观看入口 | 91高清在线 | 国产激情视频在线观看 | 国产高清一区 | 国产欧美一区二区精品性色 |