java中random()函数用法介绍

Random()

建立一个新的随机数生成器。
 java

 代码以下 复制代码
Random(long seed)

使用单个 long 种子建立一个新的随机数生成器。算法

咱们能够在构造Random对象的时候指定种子,如:dom

 代码以下 复制代码

Random r1 = new Random(20);jsp

或者默认当前系统时间对http://www.111cn.net/jsp/Java/45403.htm 应的相对时间有关的数字做为种子数:spa

 代码以下 复制代码

Random r1 = new Random();.net


种子数只是随机算法的起源数字,和生成的随机数字的区间无关。htm

二、Random类中的经常使用方法对象

下面对这些方法作一下基本的介绍:ci

 代码以下 复制代码

a、public boolean nextBoolean()数学

该方法的做用是生成一个随机的boolean值,生成true和false的值概率相等,也就是都是50%的概率。

 代码以下 复制代码

b、public double nextDouble()

该方法的做用是生成一个随机的double值,数值介于[0,1.0)之间。

 

 代码以下 复制代码
c、public int nextInt()

该方法的做用是生成一个随机的int值,该值介于int的区间,也就是-231到231-1之间。

若是须要生成指定区间的int值,则须要进行必定的数学变换,具体能够参看下面的使用示例中的代码。

 代码以下 复制代码
d、public int nextInt(int n

)

该方法的做用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

若是想生成指定区间的int值,也须要进行必定的数学变换,具体能够参看下面的使用示例中的代码。

 代码以下 复制代码

e、public void setSeed(long seed)

该方法的做用是从新设置Random对象中的种子数。设置完种子数之后的Random对象和相同种子数使用new关键字建立出

的Random对象相同。

三、Random类使用示例

使用Random类,通常是生成指定区间的随机数字,下面就一一介绍如何生成对应区间的随机数字。如下生成随机数的

代码均使用如下Random对象r进行生成:

 代码以下 复制代码

Random r = new Random();

a、生成[0,1.0)区间的小数

 代码以下 复制代码

double d1 = r.nextDouble();

直接使用nextDouble方法得到。

b、生成[0,5.0)区间的小数

 代码以下 复制代码

double d2 = r.nextDouble() * 5;

由于nextDouble方法生成的数字区间是[0,1.0),将该区间扩大5倍便是要求的区间。


同理,生成[0,d)区间的随机小数,d为任意正的小数,则只须要将nextDouble方法的返回值乘以d便可。

c、生成[1,2.5)区间的小数

 代码以下 复制代码

       double d3 = r.nextDouble() * 1.5 + 1;

生成[1,2.5)区间的随机小数,则只须要首先生成[0,1.5)区间的随机数字,而后将生成的随机数区间加1便可。

同理,生成任意非从0开始的小数区间[d1,d2)范围的随机数字(其中d1不等于0),则只须要首先生成[0,d2-d1)区间的

随机数字,而后将生成的随机数字区间加上d1便可。

d、生成任意整数

 代码以下 复制代码

int n1 = r.nextInt();

直接使用nextInt方法便可。

e、生成[0,10)区间的整数

 代码以下 复制代码

int n2 = r.nextInt(10);

n2 = Math.abs(r.nextInt() % 10);

以上两行代码都可生成[0,10)区间的整数


均匀分布性

 

 代码以下 复制代码

import java.util.Random;   public class RandomDemo {     /**      * 小伙部落      *      * @param args      */    public static void main(String[] args) {         Random r = new Random();         int n5 = r.nextInt(100);         String ran = "";         if (n5 < 55) {       //55个数字的区间,55%的概率             ran = "55%";         } else if (n5 < 95) {//[55,95),40个数字的区间,40%的概率             ran = "40%";         } else {             ran = "5%";     //剩余概率,你懂得!         }         System.out.println(ran);     } }

相关文章
相关标签/搜索