java 伪随机数 机制 研究与应用_java 随机数 研究与应用

最近看到java.lang.Math类时,注意到random()方法,想想应该把java随机数类作为一个点来研究以下。

1、  随机数 &  伪随机数

在计算机上用数学方法产生某一分布的随机数,由于是依照某种算法产生的,就不可能是真正的随机数,因此常把数学方法产生的随机数称为伪随机数。只要伪随机数具有真正随机数的一些统计性质,就可以把伪随机数作为真正随机数来使用。

2.JAVA随机数类

2.1  Java中的Math类提供的random方法,该方法的返回带正号的 double 值,大于或等于 0.0,小于 1.0。返回值是一个伪随机(选择的数,在上述范围内(大致)均匀分布 .

2.2 Random类产生伪随机数。

nRandom对象产生以后,可以通过对象调用不同的函数:nextInt()、nextLong()、nextFloat()、nextDouble()等来获得不同类型的随机数。   大致均匀分布 , 特点随即种子选取比较好

3. 产生不可重复的随机数

3.1   现实情况中,有些情况是允许产生重复的随即数的:比如丢多个骰子、验证码生成。作了个简单模拟投2个骰子的程序,核心程序就2句:

Random rand = new Random();

int point = rand.nextInt(6)+1;

可以使用产生的随机数生成不同的骰子点数图片;

3.2 不可重复的随机数,比如福利彩票摇奖程序,摇出的球号前后肯定是不能重复的。

一种思路是,如35投7中,首先将剩余球信息存放在一个数组(对象或整型)中,随机在剩余球数中产生一个球位置索引,然后将该球信息作为摇出球的信息。

4. 应用

可以应用于以上的情况,还有诸如游戏类(牌类、拼图)等等。


版权声明:本文为weixin_39574708原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。