问题标签 [prng]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
784 浏览

objective-c - Objective C 中的多个随机数生成器

在我当前的项目中,我需要多个随机数生成器,因为我需要能够相互独立地重复它们的序列。到目前为止,我还没有找到任何方法来使用标准的 Objective-C 随机数生成器来实现这一点,因为它们只有一个全局状态。

我认为拥有一个随机数生成器类可以解决我的问题。我可以创建几个可以单独重置的实例。

这样的东西已经可用了吗?我无法在目标 c 中找到任何随机数生成器实现。我想避免自己实现它,因为我没有随机数的经验,而且我认为这很难做到正确。

0 投票
1 回答
902 浏览

random - L'Ecuyer 在 CUDA C 中的 MRG32k3a 随机数生成器?

我在实现这一点时遇到了麻烦。我想在 gpu 集群上运行一些蒙特卡罗模拟,并需要随机数生成器为其工作。我想打印生成的随机数。有人可以举个例子解释一下吗?我在 unix 工作。

谢谢!

0 投票
2 回答
296 浏览

c - 使用 dSFMT 进行随机浮点 (0,1)

这个项目在 iphone 的 Obj-C 中。我在这里使用双浮点版本的 sfmt:http: //www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/#dSFMT

在用当前时间播种 dsmft 之后,我打电话给:

生成一个介于 0 和 1 之间的随机浮点数。还有其他两个选项,即:

我从文档中知道,区别在于 0 或 1 侧是打开还是关闭,并以数学方式显示:[0,1)、(0,1] 或 (0,1)。

但我不知道这意味着什么,或者使用哪个来满足我的需要。我只想要 0 到 1 之间分布最均匀的浮点数。

0 投票
2 回答
1872 浏览

ruby-on-rails - PRNG 未播种错误

我收到一个间歇性错误,说在尝试生成表单身份验证令牌时没有播种伪随机数生成器。我已经复制了下面堆栈跟踪的相关部分。

这是我所知道/看到的: - 重新启动乘客似乎暂时解决了问题 - 从控制台运行相同的代码按预期工作 - /dev/urandom 存在,因此它应该能够使用它来播种 - 这发生在 ubuntu 10.04 ,openssl 0.9.8k,ree 1.8.7 p253,passenger 3.0.3。- 我读过一个关于独角兽的问题,听起来有点像重新启动工人时发生的事情,但没有看到乘客描述的类似情况。

很难过。非常感谢任何帮助。

0 投票
2 回答
233 浏览

haskell - 播种 stdgen 有什么好的价值

我需要找到一个好的价值来mkStdGen作为种子喂养。

我通常做的第一件事就是使用从纪元开始以来的刻度,但是,我使用getClockTimefrom来做到这一点System.Time,根据hackage的说法,它已被弃用,有利于Data.Time。后者似乎并没有公开这个功能。

有没有更好的方法来为这个值生成种子?还是我应该忽略弃用警告?

0 投票
1 回答
3101 浏览

cuda - CUDA - 为傻瓜使用 CURAND 库

我正在阅读 CURAND 库 API,我是 CUDA 的新手,我想看看是否有人可以向我展示一个使用 CURAND 库生成随机数的简单代码。我正在研究生成大量用于离散事件模拟的数字。我的任务只是开发算法以使用 GPGPU 来加速随机数的生成。我已经在标准 C 语言编程中实现了 LCG、乘法和斐波那契方法。但是我想将这些代码“移植”到 CUDA 中,并利用线程和块来加速生成随机数的过程。

链接 1:http ://adnanboz.wordpress.com/tag/nvidia-curand/

那个人有我需要的两种方法(LCG 和 Mersenne Twister),但代码没有提供太多细节。我想知道是否有人可以扩展这些初始实现,以真正为我指明如何正确使用它们的正确方向。

谢谢!

0 投票
2 回答
6711 浏览

cuda - CURAND 库 - 编译错误 - 未定义的函数引用

我有以下代码,我正在尝试使用 nvcc 进行编译。

代码:

这是我收到的输出:

我最初的猜测是,由于某种原因,CURAND 库没有正确安装,或者找不到 curand.h 头文件。

请让我知道我应该寻找什么或如何解决我的问题。

谢谢!

0 投票
1 回答
1039 浏览

cuda - CUDA 编译错误 - 需要在链接器中添加“包含”

我正在尝试使用 CUDA 编译器编译此代码:

通过使用此命令:

这是我收到的输出:

在另一个讨论中,他们表示这个问题可能与链接器问题或其他问题有关,我需要在编译器命令中手动链接库以包含我的代码中所述的库。

我不知道要做到这一点,有人可以帮忙吗?

谢谢!

0 投票
2 回答
5962 浏览

javascript - 为线性同余生成器选择 A、C 和 M

我希望实现一个简单的伪随机数生成器(PRNG),它具有指定的周期并保证在该周期内没有冲突。在做了一些研究之后,我遇到了非常有名的LCG,它非常完美。问题是,我无法理解如何正确配置它。这是我当前的实现:

它说,为了使所有种子值都有一个完整的周期,必须满足以下条件:

  1. cm互质
  2. a-1能被m的所有素因子整除
  3. 如果m是4 的倍数,则a-1是 4 的倍数

13很容易理解和测试。但是2怎么样,我不太明白这意味着什么或如何检查它。那么C呢,它可以为零吗?如果它不为零怎么办?

总的来说,我需要选择 A、C 和 M 以使我的周期为48^5 - 1。M等于周期,我不确定A和C。

0 投票
3 回答
2651 浏览

ruby - Ruby 的 OpenSSL::Random 种子是否足够?

我对 Ruby 知之甚少,所以如果这个问题的答案很明显,请原谅我。我在http://www.ruby-doc.org/stdlib-1.9.3/libdoc/securerandom/rdoc/SecureRandom.html注意到Ruby 在调用 random_bytes 时使用 pid 和当前时间播种 OpenSSL::Random制作。除非在幕后发生其他事情,否则这不是 Netscape 在 90 年代中期最初的 SSL 实施中使用的种子吗? http://en.wikipedia.org/wiki/Random_number_generator_attack#Prominent_examples_of_random_number_generator_security_issues

当然,Ruby 并没有让一个 18 岁的 bug 复活。我在这里想念什么?

编辑:这是 random_bytes 的来源。请注意第一次检查 ruby​​ 是否使用 OpenSSL 编译,在这种情况下,它会使用 pid 和当前时间为其播种。