15得票1回答
如何正确地种植梅森旋转算法随机数生成器?

事实上,这并不像我最初想的那么简单。 如果没有硬件随机数生成器,有什么最好的方法来为Mersenne Twister生成种子呢? 或者说,用于生成UUID的Mersenne Twister RNG应如何接受种子才是可接受的?

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

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

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

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

11得票2回答
Mersenne Twister在C++中是线程安全的吗?

#include <random> int f() { std::random_device seeder; std::mt19937 engine(seeder()); std::uniform_int_distribution<int> ...

11得票3回答
使用Mersenne Twister C++生成(0,1)之间的数字

我正在将R代码实现到C++中,以便它可以更快地运行,但在实现mersenne twister时遇到了困难。我只希望生成介于(0,1)之间的值。以下是与此问题相关的内容:#include <random> std::mt19937 generator (123); std::co...

10得票3回答
C++11提供哪个梅森旋转算法?

我无法确定C++11提供的是哪个变体的Mersenne Twister。在Matsumoto和Nishimura在《Mersenne twister: A 623 Dimensionally Equidistributed Uniform Pseudorandom Number Generat...

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

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

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

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

9得票2回答
生成伪随机的16位整数

我需要生成16位伪随机整数,想知道最好的选择是什么。 在我脑海中浮现的显而易见的方法如下: std::random_device rd; auto seed_data = std::array<int, std::mt19937::state_size> {}; std::ge...

9得票3回答
当使用float精度时,相同的Mersenne Twister种子在C++随机数生成器中产生不同的数字。

我需要运行可重复的蒙特卡罗模拟。这意味着我使用已知的种子并将其存储在我的结果中,如果我需要使用相同的随机数字运行相同的问题实例,我会使用该种子。这是常见的做法。 在研究数字精度的影响时,我遇到了以下问题:对于相同的Mersenne Twister种子,std::uniform_real_di...