自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java隨機數(shù)總結(jié)(第一部分)

開發(fā) 后端
本文是Java隨機數(shù)總結(jié)的第一部分,這一部分講到了Java隨機數(shù)的產(chǎn)生方式、Random類API說明以及Random類使用說明三個方面的內(nèi)容。

隨機數(shù)在實際中使用很廣泛,比如要隨即生成一個固定長度的字符串、數(shù)字?;蛘唠S即生成一個不定長度的數(shù)字、或者進行一個模擬的隨機選擇等等。Java提供了最基本的工具,可以幫助開發(fā)者來實現(xiàn)這一切。

一、Java隨機數(shù)的產(chǎn)生方式

在Java中,隨機數(shù)的概念從廣義上將,有三種。

1、通過System.currentTimeMillis()來獲取一個當前時間毫秒數(shù)的long型數(shù)字。

2、通過Math.random()返回一個0到1之間的double值。

3、通過Random類來產(chǎn)生一個隨機數(shù),這個是專業(yè)的Random工具類,功能強大。

二、Random類API說明

1、Java API說明

Random類的實例用于生成偽隨機數(shù)流。此類使用 48 位的種子,使用線性同余公式對其進行修改(請參閱 Donald Knuth 的《The Art of Computer Programming, Volume 2》,第 3.2.1 節(jié))。

如果用相同的種子創(chuàng)建兩個 Random 實例,則對每個實例進行相同的方法調(diào)用序列,它們將生成并返回相同的數(shù)字序列。為了保證屬性的實現(xiàn),為類 Random 指定了特定的算法。

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

2、方法摘要

Random()

創(chuàng)建一個新的隨機數(shù)生成器。

Random(long seed)

使用單個 long 種子創(chuàng)建一個新隨機數(shù)生成器: public Random(long seed) { setSeed(seed); } next 方法使用它來保存隨機數(shù)生成器的狀態(tài)。

protected int next(int bits)

生成下一個偽隨機數(shù)。

boolean nextBoolean()

返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、均勻分布的 boolean 值。

void nextBytes(byte[] bytes)

生成隨機字節(jié)并將其置于用戶提供的字節(jié)數(shù)組中。

double nextDouble()

返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在 0.0 和 1.0之間均勻分布的 double 值。

float nextFloat()

返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在 0.0 和 1.0 之間均勻分布的 float 值。

double nextGaussian()

返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,標準偏差是 1.0。

int nextInt()

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

int nextInt(int n)

返回一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在 0(包括)和指定值(不包括)之間均勻分布的 int值。

long nextLong()

返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、均勻分布的 long 值。

void setSeed(long seed)

使用單個 long 種子設(shè)置此隨機數(shù)生成器的種子。
三、Random類使用說明

1、帶種子與不帶種子的區(qū)別Random類使用的根本是策略分帶種子和不帶種子的Random的實例。

通俗說,兩者的區(qū)別是:帶種子的,每次運行生成的結(jié)果都是一樣的。不帶種子的,每次運行生成的都是隨機的,沒有規(guī)律可言。

2、創(chuàng)建不帶種子的Random對象

Random random = new Random();

3、創(chuàng)建不帶種子的Random對象有兩種方法:

1) Random random = new Random(555L);

2) Random random = new Random();random.setSeed(555L);

 

【編輯推薦】

  1. 20個開發(fā)人員非常有用的Java功能代碼
  2. 走進Java 7中的模塊系統(tǒng)
  3. JavaFX 1.2 已經(jīng)發(fā)布 主要新功能一覽
  4. 2009年十大Java技術(shù)解決方案
  5. 2008最值得學(xué)習(xí)的五種JAVA技術(shù)
責(zé)任編輯:仲衡 來源: 百度博客
相關(guān)推薦

2019-04-10 11:06:54

前端HTMLCSS

2009-06-12 10:34:40

Java Date

2009-06-09 14:40:01

Javascript表單驗證

2013-09-24 10:07:19

Ruby項目

2009-06-12 10:08:05

StaticJava

2025-04-24 00:10:00

RAGAI人工智能

2025-01-22 08:01:53

2013-07-08 15:45:04

Python

2013-04-08 15:42:38

Backbone.js入門

2009-06-15 13:32:18

Java applet插件

2018-11-15 14:52:15

Spark數(shù)據(jù)機器學(xué)習(xí)

2011-08-03 10:12:38

2009-06-11 15:38:00

Java隨機數(shù)

2020-10-10 14:36:10

Python

2013-11-14 16:18:05

AndroidAudioAudioTrack

2018-12-19 09:03:04

物聯(lián)網(wǎng)供應(yīng)鏈物聯(lián)網(wǎng)應(yīng)用

2020-10-12 00:41:52

Python變量

2009-07-14 13:49:28

Swing組件AWT

2010-03-11 11:29:51

喬布斯

2024-05-15 08:12:11

SignalJavaScriptPromises
點贊
收藏

51CTO技術(shù)棧公眾號