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

使用随机数运行prolog脚本,如何更改随机种子?,prolog,swi-prolog,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)' 输出为: % librar

问题在于在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.0432位


救命啊

运行您的代码时出错:

ERROR: set_random/1: Type error: `random_option' expected, found `1364628886.7626996'
i、 e.set_random/1参数不正确

我试着简化,结果成功了:

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

在不同的调用中产生不同的数字

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

问题不是在prolog解释器上运行脚本,问题是在命令行上使用此指令swipl-s script.pl-g'main'-t'halt(1)运行脚本'因为我需要在另一个程序上运行此命令以生成几个随机数字否,所以每次调用时我都有相同的数字。随机数:-533.61393265667