Java生成随机数

来源:互联网 发布:网络相关法律法规 编辑:程序博客网 时间:2024/06/05 07:35

Java生成随机数有2种方法

1、Math.Random() 位于该类  java.lang.Math.Random   ----生成[0,1),不会等于1的double随机数。

用法如下:

问题:如何使用该方法生成0~10的整数随机数?

[0,1)  * 11  =  [0,11)    将float或double类型的数据转型为整形,会直接去掉小数部分。

四舍五入可以调用Math.round(float 或者 double);


2、Random类 位于包 Java.util.Random11

Random产生的数是伪随机的,你就是说是有规则的。

构造

1.Random() //默认和时间有关的一个值

2.Random(long seed)//自己设置的一个值

seed 是一个初始值,(影响哪些值先输出,但不会影响输出的区间)

方法摘要
1.protected int next(int bits):生成下一个伪随机数。
2.boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。
3.void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的 byte 数组中。
4.double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的 double值。
5.float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.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 种子设置此随机数生成器的种子。

 

重复运行这个程序,输出的值是一样的。改变seed的值 就会输出不一样的值。

只要循环多次,就会输出0-9区间的值,每个值输出的次数基本一样。这就是伪随机,有规则。

如果不带参数,则seed会与时间有关系(可看源码),则下面代码每次运行输出的结果就会不一样

因为时间不同。




0 0
原创粉丝点击