gpt4 book ai didi

java - 不同语言(即 Java 和 C++)中的 "random"生成器如何比较?

转载 作者:可可西里 更新时间:2023-11-01 17:16:17 25 4
gpt4 key购买 nike

尽管标题很奇怪,但我想问一个合理的问题:哪种方法生成的数字更随机:Java 的Random() 类或Math.random (),还是 C++ 的 rand()

我听说 PHP 的 rand() 很糟糕,也就是说,如果你映射它的结果,你可以清楚地看到一个模式;遗憾的是,我不知道如何用 C++ 或 Java 绘制 map 。

另外,出于兴趣,C# 怎么样?

最佳答案

Java 和 C++ 都生成伪随机数,它们是:

  • 足以胜任非统计学家或密码学家的任务 (a);或
  • 严重不适合这两类人。

老实说,除非您属于其中一类,否则伪随机数生成器很好。

Java 还有SecureRandom它声称提供加密类非确定性(我无法评论该论点的准确性)并且 C++ 现在具有比 rand() 更广泛的随机数生成能力。 - 参见 <random> 了解详情。

特定操作系统可能会为随机数生成器提供熵源,例如 CryptGenRandom Windows下或阅读/dev/random在 Linux 下。或者,您可以通过使用随机事件(例如用户输入时间)来添加熵。


(a) 实际上可能包含不是统计学家或密码学家的其他工作类型的踪迹:-)

关于java - 不同语言(即 Java 和 C++)中的 "random"生成器如何比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14682715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com