聯立同餘式(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-3650P II、fx-50FH II及fx-50F PLUS 程式集

 

孫子定理 (中國餘數定理Chinese Remainder Theorem) (59 bytes)

聯立同餘式(I)

 

有關聯立同餘式的參考資料:

孫子定理

simultaneous linear congruences

 

Free Web Hosting