Linux 'shuf' 中提到的随机字节是什么 --random-source?



我正在尝试使用 Linuxshuf命令准备一些随机文件,但是,通过shuf --help,它不提供任何"种子"选项。我想知道是否有任何解决方法?谢谢!

更新:

感谢评论中的提醒,我意识到(1)每次shuf FILE产生不同的结果;(2)当--random-source相同时,产生的结果是相同的,所以我想可以用来使洗牌过程可复制吗?

然后只是出于好奇:长期以来,我一直认为随机性是由随机种子控制的,但正如man所说,--random-source指定在哪里读取"随机字节"。我想知道这个随机字节与随机种子有什么关系?

我想知道是否有任何解决方法?

--random-source选择。

我想可以用来使洗牌过程可复制吗?

这就是--random-source的用途。

这个随机字节与随机种子有什么关系?

它是随机字节的来源

GNUshuf有一个尽可能优化的算法,并且该算法强烈依赖于其他选项。在最简单和最粗糙的过度简化中,您只需从文件中的行数1选择一个随机数,然后使用该数字打印行。然后重复并选择另一个数字而不重复。

浏览GNU shuf.c源代码,我看到数字生成是在shuf/randint.c randint_genmax()中。

基本上我相信你混淆了算法。事实上,伪随机数生成器使用种子。但是,shuf旨在与/dev/urandom一起使用 - 一个特殊的文件,其中内核本身保留了一个全局种子。shuf旨在与任何随机数生成方法一起使用。因此,shuf不需要特定随机数生成方法的种子,而是需要一个在从中读取时提供随机字节的流。

最新更新