9得票4回答
Mersenne Twister - 是否有一种方法可以跳转到特定状态?

我有点不确定这个问题的正确论坛。它介于理论计算机科学/数学和编程之间。 我使用Mersenne-Twister生成伪随机数。现在,从给定种子开始,我想跳转到序列中的第n个数字。 我看过这个网站:http://www-personal.umich.edu/~wagnerr/MersenneT...

15得票3回答
Mersenne Twister预热与可重复性

我目前的C++11项目需要执行M次模拟。对于每个模拟 m = 1, ..., M,我使用一个如下构造的 std::mt19937 对象随机生成数据集: std::mt19937 generator(m); DatasetFactory dsf(generator); 根据https://...

15得票1回答
PHP 的 mt_rand 函数如何生成种子?

我知道PHP的 mt_rand()不应该用于安全目的,因为其结果不具备密码学强度。 然而,很多PHP代码仍然这样使用,或者在更好的随机源不可用时使用它作为后备。 那么情况有多糟糕? mt_rand使用哪些随机源进行种子生成?而且,在密码应用中,mt_rand还存在其他安全问题吗?

7得票3回答
PRNG的质量测试

我正在尝试使用伪随机数生成器(如Mersenne Twister和stdlib库中的rand()函数),并希望找到一种好的测试方法,以确定PRNG所产生的随机数据的质量。我已经使用PRNG生成的随机数计算了圆周率的值,并发现rand()和Mersenne Twister非常接近,无法区分(需要...

12得票9回答
Delphi中的随机函数有多可靠?

我正在用Delphi编写一个撰写统计测试的程序(必须使用Delphi),听说Random功能有些奇怪。在程序启动时,必须调用randomize来随机化随机函数的种子。 我想知道在调用randomize后,random函数是否足够随机以进行统计测试,或者是否需要使用Mersenne Twis...

42得票5回答
健壮的随机数生成

我正在寻找一种性能良好、相对稳健的随机数生成器,不使用任何特殊硬件。它可以使用数学方法(如梅森旋转算法等),也可以从计算机中“收集熵”。在Linux等系统上,我们有一个drand48()函数,可以生成48位随机数。我想要一个类似的C++或C#函数/类,可以生成超过32位的随机数,并且低位和高位...

10得票5回答
集群环境下的伪随机数生成器

我如何在集群上生成独立的伪随机数,例如用于Monte Carlo模拟?我可以有许多计算节点(例如100个),并且我需要在每个节点上生成数百万个数字。我需要保证一个节点上的PRN序列不会与另一个节点上的PRN序列重叠。 我可以在根节点生成所有PRN,然后将它们发送到其他节点。但这会非常慢。 ...

31得票6回答
用于蒙特卡罗模拟的mt19937_64种子生成的最佳方法是什么?

我正在编写一个运行Monte Carlo模拟的程序;具体来说,我使用Metropolis算法。该程序需要生成可能达数十亿的“随机”数。我知道Mersenne twister在Monte Carlo模拟中非常流行,但我想确保以最佳方式初始化发生器。 目前,我正在使用以下方法计算32位种子:mt1...

12得票1回答
有没有 C++11 的 CSPRNG?

众所周知,Mersenne Twister 不具有密码学安全性: Mersenne Twister不具备密码学安全性。(MT基于线性递归。由线性递归生成的任何伪随机数序列都是不安全的,因为从足够长的输出子序列中,可以预测其余的输出。) 但是,像Stephan T. Lavavej和甚至...

7得票1回答
为什么Python中的random.random()不安全?

我在Stack Overflow上看到了这个问题:如何在Python中从列表中随机选择项,其中提到它不适用于加密/安全目的。 因此,我在官方文档中找到了这个页面:random-生成伪随机数 它提到他们使用Mersenne Twister来生成随机数。 那么,Mersenne Twiste...