当前位置: 首页 > 面试题库 >

不同语言(例如Java和C ++)的“随机”生成器如何比较?

翟功
2023-03-14
问题内容

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

我听说PHP rand()是非常糟糕的,即,如果您映射其结果,则可以清楚地看到一种模式。可悲的是,我不知道如何用C ++或Java绘制地图。

另外,出于兴趣,C#呢?


问题答案:

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

  • 对于不是统计学家或密码学家的人而言,足以胜任该任务(a);要么
  • 这两个阶层的人严重不足。

老实说,除非您 属于 这些类别之一,否则伪随机数生成器就可以了。

Java还SecureRandom声称提供加密类的非确定性(我无法评论该论点的准确性),而C
++现在具有比仅此类型更广泛的随机数生成功能rand()-
<random>有关详细信息,请参见。

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

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



 类似资料:
  • 本文向大家介绍C语言/C++如何生成随机数,包括了C语言/C++如何生成随机数的使用技巧和注意事项,需要的朋友参考一下 本文分享了C语言/C++如何生成随机数的具体实现方法,供大家参考,具体内容如下 C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。 (1) 如果你只要产生随机数而不需要设定范围的

  • 问题内容: 我意识到Swift书提供了一个随机数生成器的实现。将这种实现复制并粘贴到自己的程序中的最佳实践是吗?还是有一个可以立即使用的库? 问题答案: 迅捷4.2+ Xcode 10附带的Swift 4.2为许多数据类型引入了新的易于使用的随机函数。您可以在数字类型上调用该方法。

  • 我想用骰子做一个游戏,我需要在其中加入随机数(以模拟骰子的侧面。我知道如何在1到6之间进行)。使用 不能很好地工作,因为当我运行程序几次时,我得到的输出是: 所以我想要一个每次都会生成不同随机数的命令,而不是连续5次生成相同的随机数。是否有命令可以执行此操作?

  • 本文向大家介绍C语言随机数生成教程(rand和srand用法),包括了C语言随机数生成教程(rand和srand用法)的使用技巧和注意事项,需要的朋友参考一下 在实际编程中,我们经常需要生成随机数,例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌。 在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为: void 表示不需要传递参数。

  • 我意识到斯威夫特的书提供了一个随机数生成器的实现。在自己的程序中复制粘贴这个实现是最佳实践吗?或者有没有我们现在可以使用的库?

  • 主要内容:随机数的本质,重新播种,生成一定范围内的随机数,连续生成随机数在实际编程中,我们经常需要生成随机数,例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌。 在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为: int rand (void); void 表示不需要传递参数。 C语言中还有一个 random() 函数可以获取随机数,但是 random() 不是标准函数,不能在 VC/VS 等编译器通过