1、什么是伪随机数,为什么是伪随机数?
查看jdk文档可以看到,Random生成的是伪随机数。
什么是伪随机数呢?java是通过一个“种子”,然后经过算法计算产生的随机数。如果种子相同,则产生的随机数序列也就相同,这不是我们所想的真正的随机数。
大部分程序和语言中的随机数,确实都只是伪随机。是由可确定的函数(常用线性同余),通过一个种子(常用时钟),产生的。这意味着:如果知道了种子,或者已经产生的随机数,都可能获得接下来随机数序列的信息(可预测性)。
直观来想,计算机就是一种确定的,可预测的的设备:一行行的代码是固定的,一步步的算法是固定的,一个个与非门是固定的。通过这些固定的东西自身产生真随机,当然不可能。
详细内容可参考: