Algorithm 需要数学技巧问题的帮助吗

Algorithm 需要数学技巧问题的帮助吗,algorithm,math,Algorithm,Math,可能重复: 嗨,伙计们,我不知道该去哪里问这个问题,但因为这是一个算法问题。我遇到了一道数学题,在过去的几天里,我似乎都无法克服它。事情是这样的: 你会得到一台加法器 对一组N+1位数字求和,包括 给定的正整数1到N 数字(例如,机器已给出 3作为第一个数字,输出3。 第二个数字是6 和输出9。它以11作为 第三个数字和输出20.等等 直到它处理了N+1个数字)。 其中一位(且仅一位)为 重复的。你如何确定哪一个 数字是重复的吗 这似乎是一个骗人的问题,如果只是一个答案“不可能”的问题,我会非

可能重复:

嗨,伙计们,我不知道该去哪里问这个问题,但因为这是一个算法问题。我遇到了一道数学题,在过去的几天里,我似乎都无法克服它。事情是这样的:

你会得到一台加法器 对一组N+1位数字求和,包括 给定的正整数1到N 数字(例如,机器已给出 3作为第一个数字,输出3。 第二个数字是6 和输出9。它以11作为 第三个数字和输出20.等等 直到它处理了N+1个数字)。 其中一位(且仅一位)为 重复的。你如何确定哪一个 数字是重复的吗

这似乎是一个骗人的问题,如果只是一个答案“不可能”的问题,我会非常恼火。这里有什么想法吗?

从总和中减去(1+2+…+N)=N*(N+1)/2


编辑:如果N未知,则找到小于给定总和的最大三角形数并进行减法。

如果知道
N
S
,则答案是
d=S-N*(N+1)/2
。 这是因为从1到N的所有数字之和是a,并且从1到N的每个数字出现一次(除了重复的一个)

如果你不知道N,你可以取
N=floor((sqrt(8*S+1)-1)/2
。这可以从一个二次方程
(N^2+N)/2=a

中推导出来。好的,你有:

X = 1 + 2 + ... + N + p,  where 1<=p<=N
你知道吗

S(N) < X < S(N+1), because 1<=p<=N

S(N)1..N
,其中
N+1
是一个数字!也就是说,有从1到N的所有数字,还有一个重复的数字,也在1到N之间。请看一个例子:N=5,数字是1,2,3,4,5,3。重复的数字是3。所有数字的总和是18。N是5,我们这里有N+1=6个数字。所以d是=18-5*6/2=3,正如预期的那样。
S(N) = N(N+1)/2
S(N) < X < S(N+1), because 1<=p<=N