回 帖 发 新 帖 刷新版面

主题:[讨论]java里怎么产生真随机数了?

c和vb里都有randomize(),来产生真随机数,那么jAVA里怎么产生真随机数了?

回复列表 (共8个回复)

沙发

您的问题我们已经解决~[url]http://www.webisok.com/read.php?tid=167&page=e&#a[/url]
北大青鸟西安毕诚学员技术讨论区 尽在[url]http://www.webisok.com[/url]

板凳


我说的是真随机数,不是伪随机数了
那样还是伪随机数了
还有没有人帮忙解答下啊

3 楼

计算机里面有真随机数?  你在哪看见的?

这是百度的解释:
从软件的角度来说,如果是计算机起卦,则要用到随机数,而电脑中的随机数是假的随机数,搞那么多年程序,我还没看到过什么玩意能够有真随机数,按现代科学定义的真随机数的产生条件有起码两个: 
1、真随机数数列是不可预计的,因而也不可能重复产生两个相同的真随机数数列。 
2、真随机数只能用某些随机物理过程来产生。例如:放射性衰变、电子设备的热噪音、宇宙射线的触发时间等等。 
在计算机中,为了满足信息熵的特性,常常是用到的信息源包括用户的人为反应或某种经过排列变形后的高频时钟的序列或者是用户运动鼠标的路径的坐标等,这在一般的程序里据我看是很少触及到的。因此,计算机上的起卦方法先不谈真随机数的如何的处理问题,还有取到了数又该如何变化的问题。如果更深化的话,还需要要论及世界的本质之类的哲学命题,暂且不表。就目前起卦程序主要在网上起而言,关联于时间的起卦法也许还有可商议之处,而对随机要求性较强的起卦方法是很不适合的。 

4 楼

这个可以产生的,例如:在c语言里,可以先用randomize()初始化随机数生成器,然后用random(n)来取随机数。我的意思是说在java里能不能也初始化了?

5 楼

嗯  好像理解你的意思了~~也就是说产生不同伪随机数序列的实例是吧?

Random r = new Random(long seed);//随参数不同,产生不同的随机数序列

6 楼

C语言里那样产生的依旧是伪随机数,同学

7 楼

呵呵, 原来他说的是设置随机数的种子

new Random(seed)

8 楼

在JAVA中有两种方法可以产生随即数。

一:采用java.lang.Math 的 random()方法,会产生 0=<r<1 (r表示随机数)的随机数。


二:采用java.util.Random ,该类是JAVA专门用于产生随机数的类。

它有各种方法产生我们所需的各种(类型)的随机数。

常用的有 

public int nextInt(int num) 会产生一个 0<=r<num 之间的随机数。
public boolean nextBoolean()  会产生一个 boolean 型的随机数。

我来回复

您尚未登录,请登录后再回复。点此登录或注册