乙個數以最少步驟分解為另外兩個數和差問題的解決

2021-05-27 22:16:27 字數 751 閱讀 7462

有同學面試的時候遇到要求乙個數以最少步驟分解為另外兩個數和差問題的解決,大約描述是「將乙個數分解為幾個數的和或者差的形式,並且使步驟最小」。

定理3. n元一次不定方程 a1x1 + a2x2 +…+ anxn = c,( a1,a2,…an,c∈n )有解的充要條件是:( a1,a2,…an ) | c.

例如將任意數分解5和7的和差形式,求最少需要多少次可以完成。

轉換成數學描述就是求解

5a+7b=a 

的整數解 a=a0+xm, b=b0+ym, 並且使|a|+|b|最小。

以求解123分解為5和7的組合為例:

1、驗證:5和7的最大公約數(5,7)是1, 1|123, 可以計算。

2、使用輾轉相除法

5a+7b=123, 

a=(123-7b)/5 = 25-b-2(1+b)/5 令(1+b)/5=m得

b=-1+5m, a=25-(-1+5m)-2m = 26-7m

下面求最小的|a|+|b|.

m<=1/5或者m>=26/7時min(|a|+|b|)=min(|a-b|)=min(|27-12m|)取m整數值m=4,得min(|a|+|b|)=21

1/5<= m <=26/7時min(|a|+|b|) = min(a+b)=min(25-2m)取m=3得min(|a|+|b|)=19

可見取m=3時可得最小步驟為19次和差運算,且a=5,b=14, 即123=5*5+7*14.

對於多個數的情況,也可以使用多元不定方程類似解決。

乙個數以最少步驟分解為另外兩個數和差問題的解決

有同學面試的時候遇到要求乙個數以最少步驟分解為另外兩個數和差問題的解決,大約描述是 將乙個數分解為幾個數的和或者差的形式,並且使步驟最小 定理3.n元一次不定方程 a1x1 a2x2 anxn c,a1,a2,an,c n 有解的充要條件是 a1,a2,an c.例如將任意數分解 和 的和差形式,求...

200以內的正偶數分解為兩個質數之和

題目如下 200以內的正偶數 大於等於4 都能夠分解為兩個質數之和。每個偶數表達成形如 4 2 2的形式,每行放6個式子。1.定義乙個函式,功能是判斷是輸入的乙個數是否是質數 2.獲取某個偶數等於兩個質數之和的分解式 3.迴圈200以內所有偶數,列印出它的分解式,每6個式子一行 def zhishu...

乙個陣列實現兩個棧

題目 乙個陣列a 1.n 來實現兩個棧,使得兩個棧中的元素總和不到n時,兩個都不會發生上溯。思路 1 建立乙個陣列,分別從兩邊開始,依次往中間走。思路 2 建立乙個陣列,乙個走奇數字,乙個走偶數字。奇偶方式 define crt secure no warnings includeusing nam...