国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java兩種常用的隨機數生成方式(小白總結)

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

人機交互過程中,當我們需要機器給我們反饋不確定的數字結果時,就會需要用到隨機數了,那么,在Java中,我們應當如何來生成并使用隨機數呢?

一、通過Random類來實現

Random類是JDK的java.util包中的一個工具類,該類可用于在指定范圍內產生隨機數字。考察一下Random類的兩種構造方法:無參構造和有參構造

Random(); 無參構造方法創建一個偽隨機數生成器。Random(long seed);有參構造方法使用一個long型的種子創建偽隨機數生成器。下面分別使用兩種方式創建Random對象來獲取10個0到100的隨機數

無參構造方式

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)); } }

運行結果:

Java兩種常用的隨機數生成方式(小白總結)

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

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

有參構造方式

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)); } }

這里為了方便跟無參構造方法創建的隨機數生成器作比較,創建了兩個Random對象。

運行結果:

Java兩種常用的隨機數生成方式(小白總結)

再執行一次代碼的結果:

Java兩種常用的隨機數生成方式(小白總結)

怎么樣?是不是發現下面的有參構造生成的隨機數每次運行結果都是一樣的,而無參構造方法的random對象每次都能得到不同的隨機數。

這里的原因是:無參構造方法在創建Random對象時沒有傳入種子參數,程序會自動以當前時間為時間戳,于是每一次的運行結果都是不同的。而有參構造方法創建Random對象時傳入了種子參數,兩次運行時種子相同,實際上不管運行多少次,結果都是一樣的。

二、使用Math類的random方法

Java中的Math類也提供了一個生成隨機數的random方法。首先需要明確,Math.random()是隨機生成一個0.0到1.0之間的double類型的隨機數,這里包含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數,乘以10就變成了0到10之間的double數,再轉成int型,這是我平時接觸比較多的用法(通常我們使用隨機數也是int類型的居多)。運行結果如下(3個0到10之間的整數):

Java兩種常用的隨機數生成方式(小白總結)

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

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

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

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

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

小結

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

到此這篇關于Java兩種常用的隨機數生成方式(小白總結)的文章就介紹到這了,更多相關Java 隨機數生成內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 精品久久免费视频 | 免费看特级淫片日本 | 欧美xxxxx九色视频免费观看 | 私人玩物福利 | 亚洲综合精品一区二区三区中文 | 粉嫩高中生的第一次在线观看 | 黄 色 成 年人网站 黄 色 免费网 站 成 人 | 久久黄色一级视频 | 国产亚洲欧美精品久久久 | pgone太大了兽王免费视频 | 91九色视频无限观看免费 | 精品国产看高清国产毛片 | 国产成人精品视频 | 在线观看中文字幕亚洲 | 久草视频手机在线观看 | 久久99综合国产精品亚洲首页 | 91porny九色国产首页在线 | 99久久国语露脸精品对白 | 国产在线成人一区二区 | 手机看福利片 | 成人在线视频国产 | 日本精品久久 | 毛片在线播放网站 | 亚洲国产成人久久综合碰 | 国产精品成人观看视频网站 | 草草久久97超级碰碰碰免费 | 亚洲一区二区三区免费 | 青草福利在线 | 精品视频网| 中文字幕久久亚洲一区 | 亚洲成人在线视频网站 | 久久免费视频1 | 美女张开腿让男人捅爽 | 欧美日韩国产人成在线观看 | 高清免费国产在线观看 | 大片国产片日本观看免费视频 | 欧美日韩精品一区三区 | 久青草国产手机在线观 | 亚洲国产精品看片在线观看 | 成人国产永久福利看片 | 欧美极品大肚孕妇孕交 |