尽管标题很奇怪,但我想问一个合理的问题:哪个方法生成的数字更随机:Java的Random()类Math.random()或者C++的rand()?
我听说PHP rand()非常糟糕,即如果你映射它的结果你可以清楚地看到一个模式; 遗憾的是,我不知道如何用C++或Java绘制地图.
另外,只是出于兴趣,C#怎么样?
Java和C++都生成伪随机数,它们是:
老实说,除非你是其中一个类,否则伪随机数生成器就可以了.
Java也SecureRandom声称提供加密类非确定性(我不能评论该论证的真实性),而且C++现在具有更多种类的随机数生成能力而不仅仅是rand()- <random>详情请参阅.
特定操作系统可以为随机数生成器提供熵源,例如CryptGenRandom在Windows下或/dev/random在Linux 下读取.或者,您可以通过使用随机事件(例如用户输入计时)来添加熵.
(a)实际上可能包含非统计学家或密码学家的其他工作类型的痕迹:-)
| 归档时间: |
|
| 查看次数: |
2962 次 |
| 最近记录: |