linux `shuf` --random-source 中提到的随机字节是什么?
what's the random byte mentioned in linux `shuf` --random-source?
我正在尝试使用 Linux shuf
命令准备一些随机文件,但是,通过 shuf --help
,它不提供任何“种子”选项。我想知道是否有任何解决方法?谢谢!
更新:
感谢评论中的提醒,我意识到(1)shuf FILE
每次都会产生不同的结果;和 (2) 当 --random-source
相同时,产生的结果相同,所以我猜可以用来使洗牌过程可复制?
然后出于好奇:长期以来我认为随机性是由随机种子控制的,但正如 man
所说,--random-source
指定读取“随机字节”的位置。我想知道这个随机字节与随机种子有什么关系?
I wonder if there is any workaround?
有--random-source
个选项。
I guess can be used to make the shuffling procedure replicatable?
这就是 --random-source
的用途。
how is this random bytes related to the random seed?
它是随机字节的来源。
GNU shuf
有一个尽可能优化的算法,该算法强烈依赖于其他选项。在最简单粗暴的过度简化中,您只需从 1
中选择一个随机数来计算文件中的行数,然后打印包含该数字的行。然后重复并选择另一个没有重复的号码。
正在浏览 GNU shuf.c sources I see the number generation is in shuf/randint.c randint_genmax()。
基本上我相信你在混淆算法。确实pseudorandom number generators use a seed. However shuf
is intended to work with /dev/urandom
- a special file where the kernel itself keeps a global seed。 shuf
旨在与 any 随机数生成方法一起使用。因此 shuf
它不需要特定随机数生成方法的种子,而是需要一个在读取时提供随机字节的流。
我正在尝试使用 Linux shuf
命令准备一些随机文件,但是,通过 shuf --help
,它不提供任何“种子”选项。我想知道是否有任何解决方法?谢谢!
更新:
感谢评论中的提醒,我意识到(1)shuf FILE
每次都会产生不同的结果;和 (2) 当 --random-source
相同时,产生的结果相同,所以我猜可以用来使洗牌过程可复制?
然后出于好奇:长期以来我认为随机性是由随机种子控制的,但正如 man
所说,--random-source
指定读取“随机字节”的位置。我想知道这个随机字节与随机种子有什么关系?
I wonder if there is any workaround?
有--random-source
个选项。
I guess can be used to make the shuffling procedure replicatable?
这就是 --random-source
的用途。
how is this random bytes related to the random seed?
它是随机字节的来源。
GNU shuf
有一个尽可能优化的算法,该算法强烈依赖于其他选项。在最简单粗暴的过度简化中,您只需从 1
中选择一个随机数来计算文件中的行数,然后打印包含该数字的行。然后重复并选择另一个没有重复的号码。
正在浏览 GNU shuf.c sources I see the number generation is in shuf/randint.c randint_genmax()。
基本上我相信你在混淆算法。确实pseudorandom number generators use a seed. However shuf
is intended to work with /dev/urandom
- a special file where the kernel itself keeps a global seed。 shuf
旨在与 any 随机数生成方法一起使用。因此 shuf
它不需要特定随机数生成方法的种子,而是需要一个在读取时提供随机字节的流。