stackoverflow 上有类似的问题,但不完全是我的。
所以我有一个数字序列(从 1 到 ~5,000,000)(称这个数字为 N)。我想将每个数字映射到 [0, 99] 中的数字。一种解决方案是将 N 除以 100 的提醒值。一切都很好。我再次想再次执行此操作,并查看此 N 映射到 [0, 99] 中的哪个数字。唯一的要求是 N 第一次映射到 [0, 99] (比如 34)的数字的信息不应该决定它第二次映射到的数字。
所以我想第一次这样做 (SHA(N + 1) % 100) 和第二次 (SHA(N + 2) % 100) 等等..
能保证工作吗?还是我错过了什么?
简单地说:从 [0, 99] 中取任意两个任意数 x1, x2。计算 [0, 5000000] 中的所有数字,第一次映射到 x1,第二次映射到 x2。对于 x1,x2 的任何选择,这个计数是否相同(或多或少)?