matlab 的 normrnd 函数是否有可能在两台不同的机器上生成相同的随机数集(当没有设置种子时)?
问问题
1510 次
1 回答
1
如果两个生成器在两台机器上以相同的方式播种(例如同时启动,并以当前时间播种),则可能是这样。实际上,正如评论中提到的,Matlab 中的播种不是当前时间,所以如果没有播种,在启动时也是一样的。
- 如果您希望重现相同系列的随机数,您可以看看这个示例:您可以保存当前种子并在以后重复使用。
将当前生成器设置保存在 s 中:
> s = rng; Call rand to generate a vector of random values:
> x = rand(1,5)
> x =
0.8147 0.9058 0.1270 0.9134 0.6324
通过调用 rng 恢复原始生成器设置。生成一组新的随机值并验证 x 和 y 是否相等:
> rng(s); y = rand(1,5)
> y =
0.8147 0.9058 0.1270 0.9134 0.6324
Matlab 让您也可以选择生成器。选择一个伪随机数生成器作为 Mersenne Twister,并在每次运行时为其播种相同的种子,您将获得相同的序列。
如果您希望在每次运行时使用不同系列的随机数,您可以使用
rng('shuffle')
,然后在开始时使用时钟时间播种您的生成器。
于 2013-05-04T07:12:31.573 回答