bash 中 $RANDOM 环境变量的种子
Seed for $RANDOM environment variable in bash
我正在开发一个 bash 脚本,该脚本使用 $RANDOM
环境变量作为模拟中的输入。该变量按照它说的去做,给出随机整数,据我所知,它取自 /dev/random
。
但是我想要一个可重现的模拟,那么伪随机生成器应该用一个种子来初始化;是否可以在 bash 中为 $RANDOM
变量提供种子?
来自手册页:
RANDOM Each time this parameter is referenced, a random integer between
0 and 32767 is generated. The sequence of random numbers may be
initialized by assigning a value to RANDOM. If RANDOM is unset,
it loses its special properties, even if it is subsequently
reset.
请注意,为 RANDOM
分配一个值实际上是它的种子;分配的值不会是下一个返回值。
$ RANDOM=1341
$ echo $RANDOM $RANDOM $RANDOM
26571 16669 28842
$ echo $RANDOM $RANDOM $RANDOM
14953 18116 2765
$ RANDOM=1341
$ echo $RANDOM $RANDOM $RANDOM
26571 16669 28842
$ echo $RANDOM $RANDOM $RANDOM
14953 18116 2765
我正在开发一个 bash 脚本,该脚本使用 $RANDOM
环境变量作为模拟中的输入。该变量按照它说的去做,给出随机整数,据我所知,它取自 /dev/random
。
但是我想要一个可重现的模拟,那么伪随机生成器应该用一个种子来初始化;是否可以在 bash 中为 $RANDOM
变量提供种子?
来自手册页:
RANDOM Each time this parameter is referenced, a random integer between
0 and 32767 is generated. The sequence of random numbers may be
initialized by assigning a value to RANDOM. If RANDOM is unset,
it loses its special properties, even if it is subsequently
reset.
请注意,为 RANDOM
分配一个值实际上是它的种子;分配的值不会是下一个返回值。
$ RANDOM=1341
$ echo $RANDOM $RANDOM $RANDOM
26571 16669 28842
$ echo $RANDOM $RANDOM $RANDOM
14953 18116 2765
$ RANDOM=1341
$ echo $RANDOM $RANDOM $RANDOM
26571 16669 28842
$ echo $RANDOM $RANDOM $RANDOM
14953 18116 2765