使用随机数运行prolog脚本,如何更改随机种子?

时间:2013-03-30 04:34:59

标签: prolog swi-prolog

问题在于在我的prolog脚本上使用随机数,我在prolog文件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位。

请帮忙!

2 个答案:

答案 0 :(得分: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.

在不同的电话上产生不同的号码

答案 1 :(得分:0)

set_random(seed(888))not set_random(TS)