gpt4 book ai didi

linux - 确定性地从财富中生成输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:28 26 4
gpt4 key购买 nike

我的输出来自 fortune太随机了——为了让我的命运有任何科学意义,我需要遵循占星术的原则,这样选择的财富部分取决于,例如,月相。我整理了占星术方面的事情以获得占星术确定性数字,我可以将其用作随机种子。

从这里开始,我要么希望能够:

  1. 输出第N次运势,或者

  2. 设置fortune使用的随机种子。

我可以想象做 1. 通过获取财富文件列表 fortune -f并从其中一个文件中随机选择一行。但如果有更优雅的解决方案就好了。

我不知道怎么做 2.,我所知道的是 RNG 不是 $RANDOM,所以我不能用 RANDOM=seed 在 bash 中设置种子.

最佳答案

fortune 有很多版本和重新实现。我看过 Linux 的 fortune 源代码,您可能正在使用的代码(此处:fortune source)。不幸的是 (!) 它使用 /dev/urandom 来获取种子,如果失败则使用 time(0) 代替。这就是 $RANDOM 不起作用的原因。我只能想象这些解决方案(除了您已经找到的解决方案):

1) 修改源代码以添加一个选项来强制随机种子。这是非常微不足道的。

2) 通过chroot 将程序运行到受限环境中。受限环境必须包含必要的二进制文件和一个包含您要应用的种子的假 /dev/urandom(普通文件):

echo -en "$myseed" > restrictedroot/dev/urandom
chroot restrictedroot fortune

请注意,伪随机数包含二进制数据,因此 $myseed 必须扩展为 4 字节二进制序列(即具有四个十进制序列“\xHH”)。一点都不方便。

关于linux - 确定性地从财富中生成输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317698/

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