algorithm - 如何解这个方程来解 "Finding duplicate in integer array"

标签 algorithm equation

我在这里查看问题和讨论:Easy interview question got harder: given numbers 1..100, find the missing number(s)

其中一位用户使用以下等式提供了解决方案。 k1 + k2 = x

k1^2 + k2^2 = y

替换提供 (x-k2)^2 + k2^2 = y

我试图进一步求解这个方程,并提出一个 C 程序来解决查找重复项的问题。 尽管花了很多时间,但我无法解出这个方程来得到 k1 或 k2 的一侧。我总是以等式两边的 k1 或 k2 结尾。

感谢任何帮助。

最佳答案

展开方程式

(x - k2)^2 + k2^2 = y

得到

x^2 - 2xk2 + 2k2^2 = y

2k2^2 - 2xk2 + x^2 - y = 0

现在使用公式求解二次方程 az^2 + bz + c = 0(-b +/- sqrt(b^2 - 4ac))/2a 。只有在我们的例子中 z=k2。所以

k2 = (2x +/- sqrt(4x^2 - 8(x^2 - y))) / 4

k2 = (x +/- sqrt(x^2 - 2(x^2 - y))) / 2

   = (x +/- sqrt(2y - x^2)) / 2

你可以把

k2 = (x + sqrt(2y - x^2)) / 2
k1 = (x - sqrt(2y - x^2)) / 2.

关于algorithm - 如何解这个方程来解 "Finding duplicate in integer array",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35808173/

相关文章:

python - 广度优先搜索,图中目标的所有路径

java - 将字符串对象转换为方程

algorithm - 分割链表

javascript - 极小极大算法的井字游戏

algorithm - 它可以在线性时间内解决吗,在 n^2 时间内完成

algorithm - 在 O(1) 中计算汉明权重

c++ - OpenCV 解决任意系统的返回常量值?

查找满足特定条件的最接近整数值的算法

boolean - 为什么(a 和(不是 b))或(a 和 b)= a?

objective-c - Objective C 中的二次方程计算