【數論】更項減損術
寫在前面
這篇部落格是我在【數論】對 算術基本定理 的研究 中的一部分
- 更相減損術
我們一直感覺,兩個數的因數與兩個數的差之間冥冥之中有著某種聯絡
別的先不說,來看一張打出來的表
一張看不出來什麼,再看一張
多看幾張
這幾張表能說明什麼呢?
我的想法是:
加減運算能夠破壞一個數的標準分解結構(畢竟單項式拆成了多項式)
而除了兩個(正整)數的公因子之外的因子,都可以看做多餘的,加減運算能夠破壞的只是這些多餘的因子
反覆進行加減,直到剩下的因數不能再被破壞(程式碼中體現為!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
這樣一來,乘法結合律就是算術基本定理從單項式到多項式的橋樑
(博主是瞎想的,如果有這方面的知識歡迎告知啦)
ps:博主高二,好多東西不知道啦