为什么通过计算位然后对x取模来找到xn + 1个数字中的唯一数字是有效的

问题描述 投票:0回答:1

我知道如果我们给出的数组看起来例如像这样:

[7,6,7,6,5,7,6]
,其中除了数组中唯一的一个数字之外,每个数字都重复
x
次,那么我们可以:

  1. 将数字(它是二进制表示形式)写在另一个上面
  2. 然后我们可以计算结果列中的位数
  3. 然后通过执行(从
    i
    列计数)mod x,我们将获得数组中包含的唯一数字的二进制表示。

这个过程看起来像:

它有效。但为什么它有效呢?我无法理解。请解释一下。

algorithm binary unique
1个回答
0
投票

当您计算位时,无论位的顺序如何,您都会得到相同的答案。因此,如果您对这些数字进行排序,就会得到 samw 答案。

但是当你对数字进行排序时,你会得到重复数字的相同数字的“x”块。这意味着一个 0 块加 0,或者一个 1 块 0 mod 'x'。无论哪种方式,重复的数字都会消失,只留下唯一的数字。

© www.soinside.com 2019 - 2024. All rights reserved.