0

matlab 的 normrnd 函数是否有可能在两台不同的机器上生成相同的随机数集(当没有设置种子时)?

4

1 回答 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 回答