0

我的程序有两个不同的函数,它们都调用随机数。我希望能够独立播种每个函数调用的随机数,这样我就可以运行完整的程序多次调用一个函数的相同随机数并更改另一个函数调用的随机数。有什么见解吗?

4

3 回答 3

2

POSIX 提供drand48()函数族;你可以使用其中的一些来达到你需要的效果:

  • double erand48(unsigned short xsubi[3]);
  • long jrand48(unsigned short xsubi[3]);
  • long nrand48(unsigned short xsubi[3]);
于 2013-04-21T00:12:00.467 回答
0

在面向对象的语言中,您将创建两个独立的随机数生成器对象并分别调用它们。在 C 语言中,您必须自己完成这项工作。获取一些代码,例如Mersenne Twister或我的onejoker,并对其进行修改以获取多个状态变量。例如,我的代码中的 JKISS prng 将其内部状态保存在四个变量 x、y、z 和 c 中。将它们更改为数组或结构数组,并保留几组。然后独立播种。因此,无论代码中当前有一个“x”,将其更改为“x[i]”,其中 i 是流的编号。既然你提到它,我这样做可能不是一个坏主意...... :)

于 2013-04-21T00:22:39.783 回答
0

您可以为第一个播种一些常数,第二个播种为当前时间

于 2013-04-21T00:06:20.047 回答