日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS Random

Random

七臺河網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

java.lang.Object

|---java.util.Random

public class Random
extends Object
implements Serializable

此類的一個實例用于生成偽隨機數(shù)流。 該類使用 48 位種子,該種子使用線性同余公式進行修改。

如果使用相同的種子創(chuàng)建 Random 的兩個實例,并且為每個實例進行相同的方法調(diào)用序列,它們將生成并返回相同的數(shù)字序列。 為了保證這一特性,為類 Random 指定了特定的算法。 為了 Java 代碼的絕對可移植性,Java 實現(xiàn)必須使用此處為類 Random 顯示的所有算法。 但是,允許類 Random 的子類使用其他算法,只要它們遵守所有方法的通用合同。

類 Random 實現(xiàn)的算法使用受保護的實用程序方法,該方法在每次調(diào)用時可以提供多達 32 個偽隨機生成的位。

許多應(yīng)用程序會發(fā)現(xiàn) Math#random 方法更易于使用。

java.util.Random 的實例是線程安全的。 但是,跨線程并發(fā)使用同一個 java.util.Random 實例可能會遇到爭用,從而導(dǎo)致性能下降。 考慮改為在多線程設(shè)計中使用 ThreadLocalRandom。

java.util.Random 的實例在密碼學(xué)上不是安全的。 考慮改為使用 SecureRandom 來獲取加密安全的偽隨機數(shù)生成器,以供安全敏感的應(yīng)用程序使用。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù)描述
Random()創(chuàng)建一個新的隨機數(shù)生成器。
Random(long seed)使用單個長種子創(chuàng)建一個新的隨機數(shù)生成器。

方法總結(jié)

修飾符和類型方法描述
DoubleStreamdoubles()返回一個有效無限的偽隨機雙精度值流,每個值介于零(包括)和一(不包括)之間。
DoubleStreamdoubles(double randomNumberOrigin, double randomNumberBound)返回一個有效無限的偽隨機雙精度值流,每個都符合給定的原點(包括)和綁定(不包括)。
DoubleStreamdoubles(long streamSize)返回一個流,該流產(chǎn)生給定的 streamSize 數(shù)量的偽隨機雙精度值,每個值介于零(包括)和一(不包括)之間。
DoubleStreamdoubles(long streamSize, double randomNumberOrigin, double randomNumberBound)返回產(chǎn)生給定 streamSize 數(shù)量的偽隨機雙精度值的流,每個都符合給定的原點(包括)和綁定(不包括)。
IntStreamints()返回一個有效無限的偽隨機 int 值流。
IntStreamints(int randomNumberOrigin, int randomNumberBound)返回一個有效無限的偽隨機 int 值流,每個值都符合給定的原點(包括)和綁定(不包括)。
IntStreamints(long streamSize)返回產(chǎn)生給定 streamSize 數(shù)量的偽隨機 int 值的流。
IntStreamints(long streamSize, int randomNumberOrigin, int randomNumberBound)返回一個流,該流產(chǎn)生給定的 streamSize 數(shù)量的偽隨機 int 值,每個都符合給定的原點(包括)和邊界(不包括)。
LongStreamlongs()返回一個有效無限的偽隨機長值流。
LongStreamlongs(long streamSize)返回產(chǎn)生給定 streamSize 數(shù)量的偽隨機 long 值的流。
LongStreamlongs(long randomNumberOrigin, long randomNumberBound)返回一個有效無限的偽隨機長值流,每個值都符合給定的原點(包括)和綁定(不包括)。
LongStreamlongs(long streamSize, long randomNumberOrigin, long randomNumberBound)返回產(chǎn)生給定 streamSize 數(shù)量的偽隨機 long 的流,每個都符合給定的原點(包括)和綁定(不包括)。
protected intnext(int bits)生成下一個偽隨機數(shù)。
booleannextBoolean()從該隨機數(shù)生成器的序列中返回下一個偽隨機、均勻分布的布爾值。
voidnextBytes(byte[] bytes)生成隨機字節(jié)并將它們放入用戶提供的字節(jié)數(shù)組中。
doublenextDouble()從該隨機數(shù)生成器的序列中返回 0.0 到 1.0 之間的下一個偽隨機、均勻分布的雙精度值。
floatnextFloat()從該隨機數(shù)生成器的序列中返回下一個偽隨機、均勻分布的浮點值,介于 0.0 和 1.0 之間。
doublenextGaussian()從該隨機數(shù)生成器的序列返回下一個偽隨機、高斯(“正?!保┓植茧p精度值,均值為 0.0,標準差為 1.0。
intnextInt()從該隨機數(shù)生成器的序列中返回下一個偽隨機、均勻分布的 int 值。
intnextInt(int bound)返回一個偽隨機、均勻分布的 int 值,介于 0(包括)和指定值(不包括)之間,取自該隨機數(shù)生成器的序列。
longnextLong()從這個隨機數(shù)生成器序列返回下一個偽隨機、均勻分布的長值。
voidsetSeed(long seed)使用單個長種子設(shè)置此隨機數(shù)生成器的種子。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

構(gòu)造函數(shù)詳細信息

Random

public Random()

創(chuàng)建一個新的隨機數(shù)生成器。 此構(gòu)造函數(shù)將隨機數(shù)生成器的種子設(shè)置為一個很可能與此構(gòu)造函數(shù)的任何其他調(diào)用不同的值。

Random

public Random(long seed)

使用單個長種子創(chuàng)建一個新的隨機數(shù)生成器。 種子是偽隨機數(shù)生成器內(nèi)部狀態(tài)的初始值,由方法 next(int) 維護。

調(diào)用 new Random(seed) 等效于:

 Random rnd = new Random();
 rnd.setSeed(seed);

參數(shù):

參數(shù)名稱參數(shù)描述
seed初始種子

方法詳情

setSeed

public void setSeed(long seed)

使用單個長種子設(shè)置此隨機數(shù)生成器的種子。 setSeed 的一般約定是,它會更改此隨機數(shù)生成器對象的狀態(tài),使其處于與剛剛使用參數(shù)種子作為種子創(chuàng)建時完全相同的狀態(tài)。 方法 setSeed 由 Random 類通過原子更新種子來實現(xiàn)

(seed ^ 0x5DEECE66DL) & ((1L << 48) - 1)

并清除 nextGaussian() 使用的 haveNextNextGaussian 標志。

由 Random 類實現(xiàn)的 setSeed 恰好只使用給定種子的 48 位。 然而,一般來說,覆蓋方法可以使用長參數(shù)的所有 64 位作為種子值。

參數(shù):

參數(shù)名稱參數(shù)描述
seed初始種子

next

protected int next(int bits)

生成下一個偽隨機數(shù)。 子類應(yīng)該覆蓋它,因為它被所有其他方法使用。

next 的一般約定是它返回一個 int 值,如果參數(shù)位在 1 到 32(含)之間,那么返回值的許多低位將(大約)獨立選擇的位值,其中每個 是(大約)同樣可能是 0 或 1。方法 next 由 Random 類通過原子更新種子來實現(xiàn)

(seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1)

并返回

(int)(seed >>> (48 - bits)).

這是一個線性同余偽隨機數(shù)生成器,由 D. H. Lehmer 定義并由 Donald E. Knuth 在計算機編程藝術(shù),第 3 卷:半數(shù)值算法,第 3.2.1 節(jié)中描述。

參數(shù):

參數(shù)名稱參數(shù)描述
bits隨機位

返回:

此隨機數(shù)生成器序列中的下一個偽隨機值

nextBytes

public void nextBytes(byte[] bytes)

生成隨機字節(jié)并將它們放入用戶提供的字節(jié)數(shù)組中。 產(chǎn)生的隨機字節(jié)數(shù)等于字節(jié)數(shù)組的長度。

nextBytes 方法由 Random 類實現(xiàn),就像這樣:

  public void nextBytes(byte[] bytes) {
   for (int i = 0; i < bytes.length; )
     for (int rnd = nextInt(), n = Math.min(bytes.length - i, 4);
          n-- > 0; rnd >>= 8)
       bytes[i++] = (byte)rnd;
 }

參數(shù):

參數(shù)名稱參數(shù)描述
bytes要填充隨機字節(jié)的字節(jié)數(shù)組

Throws:

Throw名稱Throw描述
NullPointerException如果字節(jié)數(shù)組為空

nextInt

public int nextInt()

從該隨機數(shù)生成器的序列中返回下一個偽隨機、均勻分布的 int 值。 nextInt 的一般約定是偽隨機生成并返回一個 int 值。 所有 232 個可能的 int 值都是以(大約)相等的概率產(chǎn)生的。

nextInt 方法由 Random 類實現(xiàn),就像通過:

  public int nextInt() {
   return next(32);
 }

返回:

此隨機數(shù)生成器序列中的下一個偽隨機、均勻分布的 int 值

nextInt

public int nextInt(int bound)

返回一個偽隨機、均勻分布的 int 值,介于 0(包括)和指定值(不包括)之間,取自該隨機數(shù)生成器的序列。 nextInt 的一般約定是偽隨機生成并返回指定范圍內(nèi)的一個 int 值。 所有綁定的可能 int 值都以(大約)相等的概率產(chǎn)生。 nextInt(int bound) 方法由 Random 類實現(xiàn),就像通過:

  public int nextInt(int bound) {
   if (bound <= 0)
     throw new IllegalArgumentException("bound must be positive");


   if ((bound & -bound) == bound)  // i.e., bound is a power of 2
     return (int)((bound * (long)next(31)) >> 31);


   int bits, val;
   do {
       bits = next(31);
       val = bits % bound;
   } while (bits - val + (bound-1) < 0);
   return val;
 }

在前面的描述中使用對沖“大約”只是因為下一個方法只是大約獨立選擇位的無偏源。 如果它是隨機選擇的位的完美來源,那么所示的算法將從規(guī)定的范圍內(nèi)以完美的一致性選擇 int 值。

該算法有點棘手。 它拒絕會導(dǎo)致分布不均勻的值(因為 2^31 不能被 n 整除)。 一個值被拒絕的概率取決于 n。 最壞的情況是 n=2^30+1,拒絕的概率是 1/2,循環(huán)終止前的預(yù)期迭代次數(shù)是 2。

該算法特別處理 n 是 2 的冪的情況:它從底層偽隨機數(shù)生成器返回正確數(shù)量的高位。 在沒有特殊處理的情況下,將返回正確數(shù)量的低位。 已知線性同余偽隨機數(shù)生成器(例如由此類實現(xiàn)的那個)在其低位的值序列中具有短周期。 因此,如果 n 是 2 的小冪,這種特殊情況會大大增加連續(xù)調(diào)用此方法返回的值序列的長度。

參數(shù):

參數(shù)名稱參數(shù)描述
bound上限(不包括)。 必須是積極的。

返回:

此隨機數(shù)生成器序列的下一個偽隨機、均勻分布的 int 值,介于零(包括)和邊界(不包括)之間

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 bound 不是正數(shù)

nextLong

public long nextLong()

從這個隨機數(shù)生成器的序列中返回下一個偽隨機、均勻分布的 long 值。 nextLong 的一般合約是偽隨機生成并返回一個 long 值。

nextLong 方法由 Random 類實現(xiàn),就像通過:

  public long nextLong() {
   return ((long)next(32) << 32) + next(32);
 }

因為 Random 類使用只有 48 位的種子,所以該算法不會返回所有可能的 long 值。

返回:

此隨機數(shù)生成器序列中的下一個偽隨機、均勻分布的長值

nextBoolean

public boolean nextBoolean()

從該隨機數(shù)生成器的序列中返回下一個偽隨機、均勻分布的布爾值。 nextBoolean 的一般約定是偽隨機生成并返回一個布爾值。 值 true 和 false 以(大約)相等的概率產(chǎn)生。

nextBoolean 方法由 Random 類實現(xiàn),就像通過:

  public boolean nextBoolean() {
   return next(1) != 0;
 }

返回:

此隨機數(shù)生成器序列中的下一個偽隨機、均勻分布的布爾值

nextFloat

public float nextFloat()

從該隨機數(shù)生成器的序列中返回下一個偽隨機、均勻分布的浮點值,介于 0.0 和 1.0 之間。

nextFloat 的一般約定是從 0.0f(包括)到 1.0f(不包括)范圍內(nèi)(大約)均勻選擇的一個浮點值是偽隨機生成并返回的。 m x 2-24 形式的所有 224 個可能的浮點值(其中 m 是小于 224 的正整數(shù))以(大約)相等的概率產(chǎn)生。

nextFloat 方法由 Random 類實現(xiàn),就像通過:

  public float nextFloat() {
   return next(24) / ((float)(1 << 24));
 }

在前面的描述中使用對沖“大約”只是因為下一個方法只是大約獨立選擇位的無偏源。 如果它是隨機選擇的位的完美來源,那么所示的算法將從規(guī)定的范圍內(nèi)選擇具有完美一致性的浮點值。

[在 Java 的早期版本中,結(jié)果被錯誤地計算為:

    return next(30) / ((float)(1 << 30));

這似乎是等效的,如果不是更好的話,但實際上由于浮點數(shù)舍入的偏差,它引入了輕微的不均勻性:有效數(shù)字的低位為 0 的可能性略高于 它將是 1。]

返回:

此隨機數(shù)生成器序列中的下一個偽隨機、均勻分布的浮點值,介于 0.0 和 1.0 之間

nextDouble

public double nextDouble()

從該隨機數(shù)生成器的序列中返回 0.0 到 1.0 之間的下一個偽隨機、均勻分布的雙精度值。

nextDouble 的一般約定是從 0.0d(包括)到 1.0d(不包括)范圍內(nèi)(大約)均勻選擇的一個 double 值是偽隨機生成并返回的。

nextDouble 方法由 Random 類實現(xiàn),就像這樣:

  public double nextDouble() {
   return (((long)next(26) << 27) + next(27))
     / (double)(1L << 53);
 }

在前面的描述中使用對沖“大約”只是因為下一個方法只是大約獨立選擇位的無偏源。 如果它是隨機選擇的位的完美來源,那么所示的算法將從規(guī)定的范圍中選擇具有完美一致性的雙精度值。

[在 Java 的早期版本中,結(jié)果被錯誤地計算為:

    return (((long)next(27) << 27) + next(27))
     / (double)(1L << 54);

這似乎是等效的,如果不是更好的話,但實際上由于浮點數(shù)舍入的偏差,它引入了很大的不均勻性:有效數(shù)字的低位為 0 的可能性是其三倍 比那將是1! 這種不均勻性在實踐中可能并不重要,但我們力求完美。]

返回:

此隨機數(shù)生成器序列中的下一個偽隨機、均勻分布的雙精度值,介于 0.0 和 1.0 之間

nextGaussian

public double nextGaussian()

從該隨機數(shù)生成器的序列返回下一個偽隨機、高斯(“正常”)分布雙精度值,均值為 0.0,標準差為 1.0。

nextGaussian 的一般約定是從(大約)平均值為 0.0 和標準差為 1.0 的通常正態(tài)分布中選擇的一個 double 值是偽隨機生成并返回的。

nextGaussian 方法由 Random 類實現(xiàn),就好像由以下線程安全版本實現(xiàn):

 private double nextNextGaussian;
 private boolean haveNextNextGaussian = false;


 public double nextGaussian() {
   if (haveNextNextGaussian) {
     haveNextNextGaussian = false;
     return nextNextGaussian;
   } else {
     double v1, v2, s;
     do {
       v1 = 2 * nextDouble() - 1;   // between -1.0 and 1.0
       v2 = 2 * nextDouble() - 1;   // between -1.0 and 1.0
       s = v1 * v1 + v2 * v2;
     } while (s >= 1 || s == 0);
     double multiplier = StrictMath.sqrt(-2 * StrictMath.log(s)/s);
     nextNextGaussian = v2 * multiplier;
     haveNextNextGaussian = true;
     return v1 * multiplier;
   }
 }

這使用 G. E. P. Box、M. E. Muller 和 G. Marsaglia 的極坐標方法,如 Donald E. Knuth 在計算機編程藝術(shù)第 3 卷:半數(shù)值算法,第 3.4.1 節(jié),C 小節(jié),算法 P 中所述。請注意, 它僅以一次調(diào)用 StrictMath.log 和一次調(diào)用 StrictMath.sqrt 為代價生成兩個獨立的值。

返回:

下一個偽隨機,高斯(“正常”)分布的雙精度值,均值為 0.0,標準差為 1.0,來自該隨機數(shù)生成器的序列

ints

public IntStream ints(long streamSize)

返回產(chǎn)生給定 streamSize 數(shù)量的偽隨機 int 值的流。

生成一個偽隨機 int 值,就好像它是調(diào)用方法 nextInt() 的結(jié)果一樣。

參數(shù):

參數(shù)名稱參數(shù)描述
streamSize要生成的值的數(shù)量

返回:

偽隨機 int 值流

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 streamSize 小于零

ints

public IntStream ints()

返回一個有效無限的偽隨機 int 值流。

生成一個偽隨機 int 值,就好像它是調(diào)用方法 nextInt() 的結(jié)果一樣。

返回:

偽隨機 int 值流

ints

public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)

返回一個流,該流產(chǎn)生給定的 streamSize 數(shù)量的偽隨機 int 值,每個都符合給定的原點(包括)和邊界(不包括)。

生成一個偽隨機 int 值,就好像它是使用原點和綁定調(diào)用以下方法的結(jié)果:

  int nextInt(int origin, int bound) {
   int n = bound - origin;
   if (n > 0) {
     return nextInt(n) + origin;
   }
   else {  // range not representable as int
     int r;
     do {
       r = nextInt();
     } while (r < origin || r >= bound);
     return r;
   }
 }

參數(shù):

參數(shù)名稱參數(shù)描述
streamSize要生成的值的數(shù)量
randomNumberOrigin每個隨機值的原點(包括)
randomNumberBound每個隨機值的界限(不包括)

返回:

一個偽隨機 int 值流,每個值都具有給定的原點(包括)和邊界(不包括)

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 streamSize 小于零,或者 randomNumberOrigin 大于或等于 randomNumberBound

ints

public IntStream ints(int randomNumberOrigin, int randomNumberBound)

返回一個有效無限的偽隨機 int 值流,每個值都符合給定的原點(包括)和綁定(不包括)。

生成一個偽隨機 int 值,就好像它是使用原點和綁定調(diào)用以下方法的結(jié)果:

  int nextInt(int origin, int bound) {
   int n = bound - origin;
   if (n > 0) {
     return nextInt(n) + origin;
   }
   else {  // range not representable as int
     int r;
     do {
       r = nextInt();
     } while (r < origin || r >= bound);
     return r;
   }
 }

參數(shù):

參數(shù)名稱參數(shù)描述
randomNumberOrigin每個隨機值的原點(包括)
randomNumberBound每個隨機值的界限(不包括)

返回:

一個偽隨機 int 值流,每個值都具有給定的原點(包括)和邊界(不包括)

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 randomNumberOrigin 大于或等于 randomNumberBound

longs

public LongStream longs(long streamSize)

返回產(chǎn)生給定 streamSize 數(shù)量的偽隨機 long 值的流。

生成一個偽隨機長值,就好像它是調(diào)用方法 nextLong() 的結(jié)果。

參數(shù):

參數(shù)名稱參數(shù)描述
streamSize要生成的值的數(shù)量

返回:

偽隨機 long 值流

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 streamSize 小于零

longs

public LongStream longs()

返回一個有效無限的偽隨機長值流。

生成一個偽隨機長值,就好像它是調(diào)用方法 nextLong() 的結(jié)果。

返回:

偽隨機 long 值流

longs

public LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)

返回產(chǎn)生給定 streamSize 數(shù)量的偽隨機 long 的流,每個都符合給定的原點(包括)和綁定(不包括)。

生成一個偽隨機長值,就好像它是使用源和綁定調(diào)用以下方法的結(jié)果:

  long nextLong(long origin, long bound) {
   long r = nextLong();
   long n = bound - origin, m = n - 1;
   if ((n & m) == 0L)  // power of two
     r = (r & m) + origin;
   else if (n > 0L) {  // reject over-represented candidates
     for (long u = r >>> 1;            // ensure nonnegative
          u + m - (r = u % n) < 0L;    // rejection check
          u = nextLong() >>> 1) // retry
         ;
     r += origin;
   }
   else {              // range not representable as long
     while (r < origin || r >= bound)
       r = nextLong();
   }
   return r;
 }

參數(shù):

參數(shù)名稱參數(shù)描述
streamSize要生成的值的數(shù)量
randomNumberOrigin每個隨機值的原點(包括)
randomNumberBound每個隨機值的界限(不包括)

返回:

一個偽隨機 long 值流,每個值都具有給定的原點(包括)和邊界(不包括)

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 streamSize 小于零,或者 randomNumberOrigin 大于或等于 randomNumberBound

longs

public LongStream longs(long randomNumberOrigin, long randomNumberBound)

返回一個有效無限的偽隨機長值流,每個值都符合給定的原點(包括)和綁定(不包括)。

生成一個偽隨機長值,就好像它是使用源和綁定調(diào)用以下方法的結(jié)果:

  long nextLong(long origin, long bound) {
   long r = nextLong();
   long n = bound - origin, m = n - 1;
   if ((n & m) == 0L)  // power of two
     r = (r & m) + origin;
   else if (n > 0L) {  // reject over-represented candidates
     for (long u = r >>> 1;            // ensure nonnegative
          u + m - (r = u % n) < 0L;    // rejection check
          u = nextLong() >>> 1) // retry
         ;
     r += origin;
   }
   else {              // range not representable as long
     while (r < origin || r >= bound)
       r = nextLong();
   }
   return r;
 }

參數(shù):

參數(shù)名稱參數(shù)描述
randomNumberOrigin每個隨機值的原點(包括)
randomNumberBound每個隨機值的界限(不包括)

返回:

一個偽隨機 long 值流,每個值都具有給定的原點(包括)和邊界(不包括)

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 randomNumberOrigin 大于或等于 randomNumberBound

doubles

public DoubleStream doubles(long streamSize)

返回一個流,該流產(chǎn)生給定的 streamSize 數(shù)量的偽隨機雙精度值,每個值介于零(包括)和一(不包括)之間。

生成一個偽隨機雙精度值,就好像它是調(diào)用方法 nextDouble() 的結(jié)果。

參數(shù):

參數(shù)名稱參數(shù)描述
streamSize要生成的值的數(shù)量

返回:

double 值流

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 streamSize 小于零

doubles

public DoubleStream doubles()

返回一個有效無限的偽隨機雙精度值流,每個值介于零(包括)和一(不包括)之間。

生成一個偽隨機雙精度值,就好像它是調(diào)用方法 nextDouble() 的結(jié)果。

返回:

偽隨機 double 值流

doubles

public DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)

返回產(chǎn)生給定 streamSize 數(shù)量的偽隨機雙精度值的流,每個都符合給定的原點(包括)和邊界(不包括)。

生成一個偽隨機雙精度值,就好像它是使用原點和綁定調(diào)用以下方法的結(jié)果:

  double nextDouble(double origin, double bound) {
   double r = nextDouble();
   r = r * (bound - origin) + origin;
   if (r >= bound) // correct for rounding
     r = Math.nextDown(bound);
   return r;
 }

參數(shù):

參數(shù)名稱參數(shù)描述
streamSize要生成的值的數(shù)量
randomNumberOrigin每個隨機值的原點(包括)
randomNumberBound每個隨機值的界限(不包括)

返回:

一個偽隨機 double 值流,每個都有給定的原點(包括)和邊界(不包括)

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 streamSize 小于零
IllegalArgumentException如果 randomNumberOrigin 大于或等于 randomNumberBound

doubles

public DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)

返回一個有效無限的偽隨機雙精度值流,每個都符合給定的原點(包括)和綁定(不包括)。

生成一個偽隨機雙精度值,就好像它是使用原點和綁定調(diào)用以下方法的結(jié)果:

  double nextDouble(double origin, double bound) {
   double r = nextDouble();
   r = r * (bound - origin) + origin;
   if (r >= bound) // correct for rounding
     r = Math.nextDown(bound);
   return r;
 }

參數(shù):

參數(shù)名稱參數(shù)描述
randomNumberOrigin每個隨機值的原點(包括)
randomNumberBound每個隨機值的界限(不包括)

返回:

一個偽隨機 double 值流,每個都有給定的原點(包括)和邊界(不包括)

Throws:

Throw名稱Throw描述
IllegalArgumentException如果 randomNumberOrigin 大于或等于 randomNumberBound

標題名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS Random
URL地址:http://www.5511xx.com/article/ccdioco.html