1. 程式人生 > >【數論】更項減損術

【數論】更項減損術

寫在前面

  這篇部落格是我在【數論】對 算術基本定理 的研究 中的一部分

  • 更相減損術

我們一直感覺,兩個數的因數與兩個數的差之間冥冥之中有著某種聯絡

  別的先不說,來看一張打出來的表

  一張看不出來什麼,再看一張

  多看幾張

  這幾張表能說明什麼呢?

  我的想法是:

    加減運算能夠破壞一個數的標準分解結構(畢竟單項式拆成了多項式)

    而除了兩個(正整)數的公因子之外的因子,都可以看做多餘的,加減運算能夠破壞的只是這些多餘的因子

    反覆進行加減,直到剩下的因數不能再被破壞(程式碼中體現為!b?)

    剩下的那些因子之積就是GCD了

    (初步的想法)

 

  再想想,這不就是 乘法結合律 嗎??

   

  來把兩個數拆一下:

    有兩個數 a,b∈N*,a>b

    根據算術基本定理,有

    a == P1a1P2a2P3a3......Pnan

    b == P1b1P2b2P3b3......Pnbn

    再結合乘法結合律帶入a,b

    藍色部分即為a,b的最大公因數(所有質因子的積)

    而因為a,b都是正整數,且規定a>b

    在歐幾里得演算法中迴圈總是大數減小數(且兩個數一定是正整數)

    且規定直到再減就兩個數相等,沒有誰大誰小為止

    則綠色部分最終的計算結果只能是1

此處將MOD運算看作對於每一輪減法的加速

    那麼答案就是a,b的最大公因數了!

若換成 MOD,那麼就是每個質因數的指數之間來回減啊減啊,一直減到綠色部分質因數的指數都為0

  精煉一下,就是:

    任何一個數n∈N*,都可以拆成d'*n的形式(此時只有一個數,沒有產生對比,則認為d'沒有什麼意義)

    有兩個數 a,b∈N*,a == d'*n1,a == d'*n2 (d'為a,b的最大公因數,a>b)

    根據乘法結合律,有

a-b == d' * (n1

-n2)

  這樣一來,乘法結合律就是算術基本定理從單項式到多項式的橋樑

  (博主是瞎想的,如果有這方面的知識歡迎告知啦)

ps:博主高二,好多東西不知道啦