我想要一个随机生成的正或负序列整数文件。现在,我要求文件包含大致相等数量的负数和正数(无需保证),但以后可以轻松更改比例。“串行”是指第 k 个随机负数等于 -k,第 k 个随机正数等于 +k。
这个 GNU Bash 脚本单行将满足文件格式,但不会是random。
$ seq -1 -1 -5 && seq 1 5
-1
-2
-3
-4
-5
1
2
3
4
5
这个例子更好地展示了我正在寻找的东西,但仍然不是随机的,因为整数可预测地在负数和正数之间交替。
$ paste <(seq -1 -1 -5) <(seq 1 5) | tr '\t' '\n'
-1
1
-2
2
-3
3
-4
4
-5
5
通过 shuf 命令发送其中之一会使它们随机为负或正,但它们会失去序列性。
$ paste <(seq -1 -1 -5) <(seq 1 5) | tr '\t' '\n' | shuf
-5
4
3
2
-2
1
-1
-4
5
-3
注意:我正在尝试测试排序列表/位数组(零和一)的算法,但如果我使用 0 和 1,我将无法分析排序的行为或判断是否保持稳定性。