日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java记录 -38- 随机数

發布時間:2024/4/17 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java记录 -38- 随机数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java隨機數

.Java里我們可以使用Math.random()方法來產生一個隨機數,這個產生的隨機數是0-1之間的一個double,我們可以把他乘以一定的數,比如說乘以100,他就是個100以內的隨機。

  二.java.util這個包里面提供了一個Random的類,我們可以新建一個Random的對象來產生隨機數,他可以產生隨機整數、隨機float、隨機double,隨機long,這個是我們在java程序里經常用的一個取隨機數的方法。

三.在我們的System類中有一個currentTimeMillis()方法,這個方法返回一個從197011000秒到目前的一個毫秒數,返回類型是long,我們可以拿他作為一個隨機數,我們可以拿他對一些數取模,就可以把他限制在一個范圍之內

各個詳解:

java.lang.Math.Random;

調用這個Math.Random()函數能夠返回帶正號的double值,該值大于等于0.0且小于1.0,即取值范圍是[0.0,1.0)的左閉右開區間,返回值是一個偽隨機選擇的數,在該范圍內(近似)均勻分布。

int?num?=?(int)(Math.random()*3)

上面代碼num的值會均勻的隨機分布在[0,3)之間!在使用Math.Random()的時候需要注意的地方時該函數是返回double類型的值,所以在要賦值給其他類型的變量的時候注意需要進行類型轉換。

java.util.Random;

JavaAPI幫助文檔中,總結了一下對這個Random()函數功能的描述:

1java.util.Random類中實現的隨機算法是偽隨機,也就是有規則的隨機,所謂有規則的就是在給定種(seed)的區間內隨機生成數字;

2、相同種子數的Random對象,相同次數生成的隨機數字是完全相同的;

3Random類中各方法生成的隨機數字都是均勻分布的,也就是說區間內部的數字生成的幾率均等;

下面是Java.util.Random()方法摘要

1.protected?int?next(int?bits):生成下一個偽隨機數。

2.boolean?nextBoolean():返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分布的boolean值。

3.void?nextBytes(byte[]?bytes):生成隨機字節并將其置于用戶提供的?byte?數組中。

4.double?nextDouble():返回下一個偽隨機數,它是取自此隨機數生成器序列的、在0.01.0之間均勻分布的?double值。

5.float?nextFloat():返回下一個偽隨機數,它是取自此隨機數生成器序列的、在0.01.0之間均勻分布float值。

6.double?nextGaussian():返回下一個偽隨機數,它是取自此隨機數生成器序列的、呈高斯(“正態”)分布的double值,其平均值是0.0標準差是1.0

7.int?nextInt():返回下一個偽隨機數,它是此隨機數生成器的序列中均勻分布的?int?值。

8.int?nextInt(int?n):返回一個偽隨機數,它是取自此隨機數生成器序列的、在(包括和指定值(不包括)之間均勻分布的int值。

9.long?nextLong():返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分布的?long?值。

10.void?setSeed(long?seed):使用單個?long?種子設置此隨機數生成器的種子。

總結:

最后再來簡單對比一下這兩個隨機函數到底的特點:

1.java.Math.Random()實際是在內部調用java.util.Random(),它有一個致命的弱點,它和系統時間有關,也就是說相隔時間很短的兩個random比如:

double?a?=?Math.random()

double?b?=?Math.random();

即有可能會得到兩個一模一樣的double

2.java.util.Random()在調用的時候可以實現和java.Math.Random()一樣的功能,而且他具有很多的調用方法,相對來說比較靈活。所以從總體來看,使用java.util.Random()會相對來說比較靈活一些。


轉載于:https://blog.51cto.com/zlfwmm/1696252

總結

以上是生活随笔為你收集整理的Java记录 -38- 随机数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。