Gforth 随机生成器没有种子

Gforth random generator has no seed

gforth 中的以下程序打印出 0 到 2 之间的 10 个随机数:

require random.fs
: main 10 0 do i cr . 3 random . loop ;
main

问题是,每次开始后,数字都是一样的。这意味着没有使用 time(0) 种子。我怎样才能得到每次开始时不同的随机数?

在 GPL 许可的源文件中 random.fs:

Variable seed
450405 Constant generator
: rnd  ( -- n )  seed @ generator um* drop 1+ dup seed ! ;
: random ( n -- 0..n-1 )  rnd um* nip ;

要获取随机数,您可以在变量 seed 中添加一行,可能像这样:

utime drop seed !

不过我不是密码学家,但我的印象是使用当前时间播种在密码学上是不安全的。我不会在任何生产代码中使用它。