聯立同餘式(II)
更新日期: 2011年1月22日
程式可以求整數論中聯立同餘式(simultaneous linear congruences) 的解,程式計算解的最小正值及通解。 與第(I)版比較,這個程式克服了第(I)版或者是使用中國餘數定理的程式在計算較大除數時,速度很慢的問題。 另外在聯立同餘式無解的情況下會顯示Math ERROR,而不是第(I)版長時間顯示空白。
更新日期: 2011年3月21日
程式需要在 SD 模式下執行,因此在選擇新程式位置後,按 4 選用SD模式。
注意: 藍色的英文字為統計模式中的變數(n 按 shift 1 3 ,x為平均x 按 shift 2 1)
程式(159 bytes):
0→A: 1→B: While 1: ClrStat: ?→C:
?→D: C-A ; Abs( D DT: B→M: Pol( n , 0: 1→D: Lbl 1:
D→C: Y→D: Fix 0: C - D Rnd( M÷X - . 5→Y:
M- X Rnd( M÷X - . 5→C: Ans => X→M:
Ans => C→X: Ans => Goto 1: (Abs( x ) ÷X) nCr 0:
A + DxB÷X→C: nB÷X→B: Ans→D:
C - B Rnd( C÷B - . 5: Norm 1: Ans - B(Ans=B→A:
Ans→C: WhileEnd
例題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
返回 CASIO fx-50FH 及 fx-50F PLUS 程式集
孫子定理 (中國餘數定理Chinese Remainder Theorem) (59 bytes)
有關聯立同餘式的參考資料:
simultaneous linear congruences