因式定理(III)
程式由網友 cheap 提供。
程式編寫日期: 2011年1月7日
程式使用因式定理,自動嘗試不同數值(整數及分數)計算函數值,直至函數值為0(即找到一次因式),程式會先顯示該數值,然後再用綜合除法(synthetic division)計算及顯示低一次冪的多項式。計算出低一次冪多項式後,可以繼續使用程式,以因式定理嘗試進一步分解多項式(若果有簡單因子存在),直至 出現一次因子(可按AC終止程式。若果該多項式不能分解,程式會直接顯示Norm 1。
程式 (182 bytes)
?→A: ?→B: A+B(A=0→X: ?→C: ?→D: 1→Y: MM-:
Goto2: Lbl 0: Y+1→Y: X÷Y :Rnd: YAns-X => Goto0:
MM-:Lbl1 :1M- : D÷M :Rnd: MAns-D
=> Goto1:
Lbl 2: M┘Y: A Ans3 + BAns2 + CAns + D
=> Goto 3:
Norm1: M┘Y◢ A◢ B + MAns┘Y→B◢ C + MAns┘Y→D◢
B→C: A→B: 0→A: Goto 2:
Lbl 3: Fix 0: -M→M: M>0 => Goto 2:
D2>M2 => Goto1:X2>Y2
=> Goto 0:
Norm1
例題1: 試用因式定理因式分解 x3 + 2x2 - 6x - 4
按 Prog 1 再按 1 EXE 2 EXE - 6 EXE - 4 EXE
(輸入三次函數的係數,顯示2,表示f(2)為 0,所以 x - 2為因式)
EXE (顯示二次因式x2的係數為 1)
EXE (顯示二次因式x的係數為 4)
EXE (顯示二次因式常數項為 2)
EXE (顯示Norm 1及0表示計算完結,即二次因子不能簡單整數分解)
所以 x3 + 2x2 - 6x - 4 = (x - 2)(x2 + 4x + 2)
例題2: 試用因式定理因式分解 2x3 + 3x2 - 3x - 2
按 Prog 1 再按 2 EXE 3 EXE - 3 EXE - 2 EXE
(輸入三次函數的係數,顯示1,表示f(1)為 0,所以 x - 1為因式)
EXE (顯示二次因式x2的係數為 2)
EXE (顯示二次因式x的係數為 5)
EXE (顯示二次因式常數項為 2)
EXE (顯示 - 2,表示f(-2)為 0,所以 x + 2為因式)
EXE (顯示二次因式x2的係數為 0,代表餘下一次因式)
EXE (顯示二次因式x的係數為 2)
EXE (顯示二次因式常數項為 1)
此時可按AC終止程式,即 2x3 + 3x2 - 3x - 2 = (x - 1)(x + 2)(2x + 1)
註: 當出現分數的常數項答案,請自行整理為整數。另外分解出的二次因式或最後餘下的一次因式,各係數間可能未約至最簡單,即可能可再分解出一常數因子。