N次方根化簡(II)(分數版)
程式新版
簡介及程式特點: 程式可以化簡一個整數的平方根(將 n√(a/b)化簡為 (c/d) n√e,其中 a, b, c, d, e為正整數)。
第一個程式較為簡短,當答案平方根c值細小時速度很快(參看網頁尾附錄中第3項),但c值大時速度變得相當慢(參看附錄中第2項),較特別是這個版本亦可以計算非循小數平方根化簡問題。
第二個程式平均速度較第一個程式快,特別是答案為(c/d) n√e,e值大時速度比第一個程式快很多,但缺點是c值很大及e值細小時,速度頗慢(參看網頁尾附錄中第3項)。
第三個程式平均速度比第二個程式快,克服了傳統這類平方根化簡程式的問題(同時改善了第一及第二程式在某些情況下特別慢的問題)。
更新日期: 2011年4月21日
第一個程式 (56 bytes,使用記憶A、B、C及M)
MM-: ?→C: ?→A: ?→D: AD^( C - 1→A:
Sci 8: While Ans: 1M+: C x√( A÷M→B:
Ans - Rnd(Ans: WhileEnd: Norm 1: B┘D◢ M
第二個程式(67 bytes,使用記憶A、B、C及D)
?→D: ?→A: ?→X: AX^(D - 1→A: Fix 0:
Rnd( D x√( A ) - . 5→B: While Ans: A ÷ Ans^( D→C:
Ans - Rnd( Ans => B - 1→B: WhileEnd:
Norm 1: B┘X◢ C
第三個程式(71 bytes,使用記憶A、B、C及D)
?→D: ?→A: ?→X: AX^(D - 1→A: 1: Fix 0:
While Ans: Rnd(D x√( A ÷ Ans ) - . 5→B:
A ÷ B^( D→C: Ans - Rnd( Ans => Rnd( C + . 5: WhileEnd:
Norm 1: B┘X◢ C
第四個程式(88 bytes,使用記憶A、B、C及M)
?→C: 0→B: ?→A: ?→D: AD^(C - 1→A:
Fix 0: While Ans: Rnd(C x√( A ÷ Rnd( B + . 5 ) )
- . 5→M: A ÷ M^( C→B: Ans - Rnd( Ans =>
1M- => A ÷ M^( C→B: Ans - Rnd( Ans: WhileEnd:
Norm 1: M┘D◢ B
註1: 注意若在程式執行中(顯示空白時)按AC終止程式,計數機會保持在小數零位(Fix 0)或有效數字8位(Sci 8)的設定。
註2: 注意除第一個程式方根數可輸入非循環小數外,其它程式輸入的數據為整數,否則程式計算不成立。
例題1: 化簡 3√(8/9)
按 Prog 1 再按 3 EXE 8 EXE 9 EXE (顯示 2/3) EXE (顯示 3)
所以 3√(8/9) = (2/3) 3√3
例題2: 化簡 3√40
按 Prog 1 再按 3 EXE 40 EXE 1 EXE (顯示 2) EXE (顯示 5)
所以 3√40 = 2 3√5
例題3: 化簡 √(8/27)
按 Prog 1 再按 2 EXE 8 EXE 27 EXE (顯示 2/9) EXE (顯示 6)
所以 √(8/27) = (2/9) √6
例題4: 化簡 √0.75 (只適用於第一個程式)
按 Prog 1 再按 2 EXE 0.75 EXE 1 EXE (顯示 0.5) EXE (顯示 3)
所以 √0.75 = 0.5√3
附錄: 三個程式速度測試比較表 (以fx-50FH進行測試)
編號 | 計算項目 | 第一個程式 | 第二個程式 | 第三個程式 | 第四個程式 |
1. | √88=2√22 | 約6秒 | 約1秒 | 約2秒 | 約1秒 |
2. | √39988=2√9997 | 約2880秒 | 約19秒 | 約26秒 | 約19秒 |
3. | √70000=100√7 | 約2秒 | 約16秒 | 約3秒 | 約3秒 |
註3: 第1項測試為一般常見較簡單平方根化簡,第2及3項則測試計算大平根化簡情況,分為兩個情況,情況一為答案的平根數值大及情況二答案的整數部份數值大。