小编mda*_*ddy的帖子

在Bash中随机均匀分布

我一直在使用"shuf"和"sort -R"来改变我的音乐播放列表,但感觉某些歌曲比其他歌曲播放得更多.

为了测试这一点,我使用了以下命令,它将字母表混洗并记录随机播放的第一个字母,重复x1000,然后计算每个字母被选中的次数.如果它是真正随机的,那么会有均匀的分布,但它总是不平衡的:

printf "a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz" > alphabet.txt; for i in {1..1000}; do cat alphabet.txt | perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);' | perl -e 'print reverse <>' | head -1 >> results.txt; done; sort results.txt | uniq -c | sort; rm results.txt; rm alphabet.txt
Run Code Online (Sandbox Code Playgroud)

结果如下:

 29 w
 30 u
 31 d
 32 i
 33 v
 34 c
 34 m
 36 a
 36 g
 36 k
 36 n
 36 r
 36 z
 38 y
 39 x
 40 b
 40 e
 40 o …
Run Code Online (Sandbox Code Playgroud)

random bash

4
推荐指数
1
解决办法
117
查看次数

标签 统计

bash ×1

random ×1