0

问题在于在我的序言脚本上使用随机数,我在序言文件 script.pl 上有下一个代码:

main:-
    get_time(TS),
    set_random(TS),
    random(-1000.0, 1000.0, X),
    write('Random number: '),
    write(X),
    nl.

我在控制台上执行下一个命令行:

swipl -s script.pl -g 'main' -t 'halt(1)'

输出是:

% library(swi_hooks) compiled into pce_swi_hooks 0.00 sec, 2,224 bytes
% /home/script.pl compiled 0.01 sec, 704 bytes
Random number: -533.6139326519667

我可以多次运行相同的命令,并且每次都有相同的输出。我尝试在不更改随机种子的情况下工作,但问题仍然存在。

我正在使用 Ubuntu 12.04 32 位。

请帮忙!

4

2 回答 2

0

它是 set_random(seed(888)) 而不是 set_random(TS)

于 2013-09-27T02:40:10.447 回答
0

我在运行您的代码时出错:

ERROR: set_random/1: Type error: `random_option' expected, found `1364628886.7626996'

即 set_random/1 参数不正确。

我试图简化,它奏效了:

main:-
    random(-1000.0, 1000.0, X),
    write('Random number: '),
    write(X),
    nl.

在不同的通话中产生不同的号码

于 2013-03-30T07:38:29.703 回答