2016-03-04 34 views
0

我一直在尋找這個問題,這裏的討論: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結束。

任何幫助表示讚賞。

+0

搜索 「我怎麼解決二次方程」。 –

回答

1

展開式

(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. 
+0

謝謝,這真的很有幫助。 – user1150393

+0

@ user1150393謝謝。 –