gpt4 book ai didi

random - YAP Prolog random 缺乏随机性

转载 作者:行者123 更新时间:2023-12-02 02:45:38 25 4
gpt4 key购买 nike

当使用 YAP 执行以下 Prolog 程序时,输出始终相同,即整数 233。

:- use_module(library(random)).    
x:- random(1,1000,X), writeln(X).

例如,如果我执行以下 bash 脚本,输出始终是相同的整数 (233)。

for k in `seq 0`
do
yap -l test.pl << %
x.
%
done

如果我使用 swipl 重复此过程,则每次输出都会不同,即随机的。

谁能解释一下吗?

最佳答案

要事第一!

出于许多充分的原因(过去结果的可重复性是最重要的),计算机程序不使用实际随机数,而是使用随机数。

PRNG 是完全确定性的函数,给定与初始化相同的内部状态(也称为“种子”),会产生完全相同的数字序列(从现在到永恒)。

快速修复:找到合适的种子(日期、时间、月相……)并使用该种子显式初始化 PRNG。记录种子,以便您以后可以确定地重新运行过去的实验。

关于random - YAP Prolog random 缺乏随机性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com