26得票8回答
多线程的随机数生成

问题 我打算在Linux下编写一个C++11应用程序,用大约一百万个伪随机的32位数字进行一些数值模拟(不是密码学)。为了加快速度,我想使用所有桌面CPU核心的并行线程来执行模拟。我想使用由boost提供的Mersenne Twister mt19937作为PRNG,我猜为了性能原因,每个线程...

7得票2回答
我能否通过结合random_device和mt19937并重新播种来生成密码学安全的随机数据?

我需要在c++11中生成加密安全的随机数据,我担心对于所有数据使用random_device会严重限制性能(参见Stephan T. Lavavej的 "rand() Considered Harmful" 第23页,他说在他的系统上测试时,random_device是1.93 MB/s,而m...

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

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

97得票6回答
如何获取NumPy随机数生成器的当前种子?

以下代码导入了NumPy并设置了种子。import numpy as np np.random.seed(42) 然而,我不想设置随机种子,而是更关心如何读取它。random.get_state() 似乎并不包含种子。文档 中没有明显的答案。 如果我没有手动设置随机种子,如何检索由 nump...

52得票3回答
std::mt19937需要预热吗?

我读到很多伪随机数生成器需要大量样本才能"预热"。当使用std::random_device作为std::mt19937的种子时,是否也是如此?或者我们可以期望它在构造后就准备好了吗?涉及的代码:#include <random> std::random_device rd; st...

8得票2回答
C++11 生成频繁变化范围内的随机数

问:如何从先验未知的范围中生成(许多)均匀分布的整数?在性能方面,什么是首选方法(生成数百万个数字)? 背景:在我的应用程序中,我必须在许多地方生成许多伪随机数。我使用单例模式来维护应用程序运行的可重现性。在我的情况下,分布总是均匀的,但问题在于有太多可能的范围无法在C++11样式中预先制作...

18得票3回答
在R和Julia中生成相同的随机数

我希望在R和Julia中生成相同的随机数。两种语言似乎都默认使用Mersenne-Twister库,但是在Julia 1.0.0中:julia> using Random julia> Random.seed!(3) julia> rand() 0.8116984049958...

8得票1回答
Ruby的rand函数有效种子范围是多少?

Ruby将PRNG实现为“具有2 ** 19937-1周期的修改的Mersenne Twister。”1 我的理解是MT在2 ^ 32个不同的种子上运行。使我困惑的是,Random.new(seed)接受任意大的数字,例如Random.new(2 ** 100)。 但是,我无法找到(逻辑)...

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

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

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

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