Java生成随机数

Java生成随机数有2种方法

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

用法如下:

Java生成随机数_第1张图片

Java生成随机数_第2张图片

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

Java生成随机数_第3张图片

[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 种子设置此随机数生成器的种子。
Java生成随机数_第4张图片

 Java生成随机数_第5张图片

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

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

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

因为时间不同。

Java生成随机数_第6张图片



你可能感兴趣的:(java,android,随机数)