聯立同餘式(II)
程式可以求整數論中聯立同餘式(simultaneous linear congruences) 的解,程式計算解的最小正值及通解。 與第(I)版比較,這個程式克服了第(I)版或者是使用中國餘數定理的程式在計算較大除數時,速度很慢的問題。 另外在聯立同餘式無解的情況下會顯示Math ERROR,而不是第(I)版長時間顯示空白。
程式編寫日期: 2006年10月17日
程式需要在 SD 模式下執行,因此在輸入程式前請先按 Mode Mode 1 進入SD模式。
注意: 藍色的英文字為統計模式中的變數(n 按 shift 1 3 ,x為平均x 按 shift 2 1)
程式(162 bytes):
0→A: 1→B: Lbl 0: Stat clear: ?→C:
?→D: C-A ; √D2 DT: B→M: Pol( n , 0: 1→D: Lbl 1:
D→C: Y→D: M÷X - . 5: Fix 0: Rnd: C - AnsD→Y:
M÷X - . 5: Rnd: M - XAns→C => X→M => C→X => Goto 1:
(√x2÷X) nCr 0: A + DxB÷X→C: nB÷X→B: Ans→D:
C÷B - . 5: Rnd: Norm 1: C - AnsB: Ans - B(Ans=B→A:
Ans→C: Goto 0
例題1: 計算以下大除數的聯立同餘式。
M ≡ 123 (mod 9877)
M ≡ 923 (mod 8979)
按 Prog 1 再按 123 EXE 9877 EXE
923 EXE 8979 (顯示79016123) EXE (顯示88685583)
所以最小的正值為79016123,通解 = 79016123 + 88685583n
註: 若果使用中國餘數定理或聯立同餘式(I)計算,時間會非常長,基本上可以說不能求出解答。
例題2: 計算以下聯立同餘式:
M ≡ 4 (mod 5)
M ≡ 1 (mod 3)
M ≡ 9 (mod 10)
按 Prog 1 再按 4 EXE 5 EXE 1 EXE 3 EXE 9 EXE 10 EXE (顯示19) EXE (顯示30)
所以最小的正值為19,通解 = 19 + 30n
例題3: 計算以下聯立同餘式:
M ≡ 4 (mod 5)
M ≡ 1 (mod 3)
M ≡ 9 (mod 10)
M ≡ 2 (mod 7)
M ≡ 7 (mod 12)
按 Prog 1 再按 4 EXE 5 EXE 1 EXE 3 EXE 9 EXE 10 EXE 2 EXE 7 EXE
7 EXE 12 EXE (顯示79) EXE (顯示420)
所以最小的正值為79,通解 = 79 + 420n
孫子定理 (中國餘數定理Chinese Remainder Theorem) (59 bytes)
有關聯立同餘式的參考資料:
simultaneous linear congruences