java平均的随机数_Java 随机数详解
Java 隨機數(shù)詳解
## 概述
Java隨機數(shù)的產(chǎn)生方法有2種,一種是Math.random()方法,一種是Random類。
Math.random()可以隨機生成一個0-1的double類型浮點數(shù)。
Random類需要一個隨機數(shù)種子來產(chǎn)生一個隨機數(shù),默認(rèn)構(gòu)造函數(shù)Random()使用當(dāng)前時間(System.currentTimeMillis())作為發(fā)生器的種子,也可以使用Random(long seed)指定發(fā)生器的種子。
隨機數(shù)發(fā)生器(Random)對象產(chǎn)生以后,可以通過調(diào)用不同的方法(nextInt()、nextLong()、nextFloat()、nextDouble()等)獲得不同類型隨機數(shù)。指定隨機數(shù)種子后,每次運行生成的隨機數(shù)序列結(jié)果都一樣。
## 生成隨機數(shù)
### 使用Random類生成隨機數(shù)
```java
Random random = new Random();
System.out.println(random.nextInt());// 生成整形隨機數(shù)
System.out.println(random.nextFloat());// 生成浮點型隨機數(shù)
System.out.println(random.nextBoolean());// 生成布爾類型隨機數(shù)
```
### 使用Math.random()方法生成隨機數(shù)
```java
double random = Math.random();
System.out.println(random);
```
## 生成指定范圍的隨機數(shù)
生成“5 =< result < 30”的隨機數(shù)。
### 使用Random類
```
int min = 5;
int max = 30;
Random random = new Random();
// 5 =< result < 30
int result = random.nextInt(max - min) + min;
System.out.println(result);
```
### 使用Math.random()方法
```
int min = 5;
int max = 30;
int result = (int) (Math.random() * (max - min)) + min;
System.out.println(result);
```
## 生成隨機密碼
生成包含大小寫字母、數(shù)字、特殊字符的指定長度密碼
### 使用ASCII碼
```
int length = 15;
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
sb.append((char) (random.nextInt(127 - 33) + 33));
}
System.out.println(sb.toString());// &%TK^5%{@VE4
```
### 使用指定的字符串
```
String chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int length = 15;
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
sb.append(chars.charAt(random.nextInt(chars.length())));
}
System.out.println(sb.toString());// 6FUCPy9hCJRbBSg
```
## Random類常用API
| 方法 | 描述 |
| --- | --- |
| Random() | 創(chuàng)建一個新的隨機數(shù)生成器。 |
| Random(long seed) | 使用seed種子創(chuàng)建一個新隨機數(shù)生成器。 |
| 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,標(biāo)準(zhǔn)偏差是 1.0。 |
| int nextInt() | 返回下一個偽隨機數(shù),它是此隨機數(shù)生成器的序列中均勻分布的 int 值。 |
| int nextInt(int n) | 返回一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在 0(包括)和指定值(不包括)之間均勻分布的 int值。 |
| long nextLong() | 返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、均勻分布的 long 值。 |
| void setSeed(long seed) | 使用seed設(shè)置此隨機數(shù)生成器的種子。 |
總結(jié)
以上是生活随笔為你收集整理的java平均的随机数_Java 随机数详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽争霸---------常见简称
- 下一篇: TraceView工具如何使用