我有一个函数图,它使用rand(0)
生成0到1之间的数字。
我想在每次运行Gnuplot脚本时设置不同的随机序列。
文档说使用rand(x)
,其中x
是一个正整数。
我试过这个
rand(floor(10*acos(rand(0))))
为每次执行提供一个整数。
但是,这一行给了我一个错误。我没有找到任何设置rand
的种子的例子。
如何每次设置不同的种子以获得不同的图?
此致
答案 0 :(得分:3)
如果你想在每次gnuplot启动时看到一组看似不同的随机数,你可以使用time(0)函数为随机数生成器播种。使用:
rand(time(0))
第一次实现目标。然后只需在脚本中使用rand(0)。
答案 1 :(得分:2)
您必须实际使用(打印返回值,或将其分配给变量)rand()
函数,并使用正整数参数来播种生成器
print rand(-1)
print rand(0)
print rand(-1)
print rand(0)
print rand(5)
print rand(0)
rand(-1)
(或重新启动gnuplot)将种子重置为标准值。我想,你想要的是能够设置伪随机种子。通常的方法是使用当前时间和日期:
print rand(time(0))
plot ..... something using the rand(0) function
如果参数是整数,则 time()
以整数秒返回unix时间,否则返回精度为〜微秒的实数。所以重新运行你的脚本的速率< 1s有时会给出两个相同的图。你可能会像rand(int(time(0)*1000)))
那样做以防止这种情况,尽管我无法想象为什么这是必要的。 ; - )