假设我有一个很大的随机整数列表,其中包含000000和999999之间的均匀分布。
现在假设我取每个数字的前3位。
这些数字能保证在000和999之间均匀分布吗?
如果我取最后三位数呢?
如果随机整数是十六进制或任何其他基数(但仍然是每个数字一个字符),该怎么办?
实际应用:根据定义,加密散列应该在其最小值和最大值之间具有均匀分布,在给定输入(即,被散列的数据)的情况下,是否可以使用它来生成随机但一致数量的任意界限?
发布于 2019-02-12 18:28:24
选择前三位或后三位将得到一个随机且均匀分布的三位数。实际上,只要你为每个数字选择的数字不重叠,你就可以同时选择这两个数字,得到两个随机的独立的数字,每个数字都有一个均匀的分布。
(因此,您可以选择数字1、3和4作为第一个数字,选择6、2和5作为最后一个数字,它们在000-999范围内仍然是随机和独立的。)
这是因为我们可以将000000-999999 -generator看作由6个具有均匀概率分布的独立的1位数生成器组成。
这仍然适用于十六进制的000000-FFFFFF,但显然不适用于000000-0F423F (999999)。
只要你坚持十六进制,二进制,十进制等位置系统,并允许完整的字符跨度,这是有效的。
编辑:我不确定我是否理解了你的哈希生成范围。
https://stackoverflow.com/questions/54641501
复制相似问题