Normrnd函数生成相同的随机数

时间:2013-05-04 06:50:55

标签: matlab

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

1 个答案:

答案 0 :(得分: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,并播种它 每次运行时使用相同的种子,您将获得相同的种子。

  • 如果您希望每次运行时都有不同系列的randm数字, 您可以使用rng('shuffle'),然后用时钟播种您的发电机 开始时间。