假设一个数据文件随机生成80+百万个1和0。
从这个文件中,我们想创建一个随机十进制整数的列表。
这是进行此转换的计划。
- 将8000万个数字分为4个二进制数字的分组。
- 将每个4位二进制数转换为十进制。
- 丢弃所有大于9的十进制值。
这将导致从0-9的随机整数字符串
这里是关注点。包含与值10到15对应的4个二进制数字的6个分组的24个二进制数字包含17个1和7个0。这种不平衡会以任何方式影响偶数与奇数整数的分布,还是损害最终的十进制数字字符串的随机性?
更新:从发布的答案来看,上面列举的方法似乎是正确的。我同意这个结论。但是,我仍然不明白为什么从二进制字符串中删除比零多两倍的数字不会使结果偏向于更少的奇数。我寻求解释。
9
有更有效的方法。例如,您可以将位字符串划分为10个组,将其转换为以10为基数的三位数表示形式,并丢弃任何大于或等于1000的值。这将使用97.6%的位,而不是仅使用62.5%。你不能做得比这更好。(您可以使用681组,并将它们转换为205位以10为基数的字符串,从而使用几乎99.7%的位。)
—
whuber