use*_*359 1 perl for-loop srand
我在for循环中迭代perl脚本并srand(time¦$$)在我的脚本中使用随机数来播种.
srand(time¦$$)
在我的输出中,当我得到单独的结果时,我会得到重复的结果,如果我一次只做一个,而不是使用for循环.这是因为这srand条线吗?有什么建议?
srand
谢谢!
Mor*_*kus 14
srand使用相同号码的呼叫将导致以下rand呼叫返回的相同序列号码.因此,如果您srand(time() | $$)快速连续(例如在同一秒内),那么您正是这样做:srand使用相同的值调用,从而生成相同的序列rand.
rand
srand(time() | $$)
请参阅perldoc页面srand.
文档还提到的一件事是,如果你先打电话rand不打电话,srand那么Perl实际上会打电话srand给你.因此,您首先不需要srand在脚本中进行调用.
该文档还强烈建议不要srand每个进程多次调用,因为这会导致熵的丢失.
归档时间:
13 年,1 月 前
查看次数:
1318 次
最近记录: