小數轉換平方根

程式可以將一個計算後小數答案(答案記憶Ans)轉換為一個平方根 (a/b)√c,其中a, b及c為整數。這個程式亦可用於平方根式的化簡。

網頁尾附加的附錄程式是這個程式的簡化版本(現時一些類似程式慣常寫法),簡化版程式雖然會簡短很多(97 bytes),但計算某些簡單問題會很慢(包括答案是細小平方根的情況),詳情請參考例題4,另外簡化版本容許計算誤差亦較小,因此成功轉化為平方根的機會亦會較低,所以在程式容量許可的情況請盡量不要選用附錄程式。

程式編寫日期: 2007年1月7日 (修改日期: 2011年9月29日)

程式 (140 bytes)

Mem clear: Ans→D: Ans2→A: Ans→B: 1→C: Fix 0:

Lbl 0: A: Rnd: Ans→X: A - X => Ans-1→A: YX + C→X:

Y→C: X→Y: BY: Sci 9: Rnd: Ans→X: Fix 0: Rnd:

X - Ans => Goto 0: XY →X: 1: Lbl 1: Rnd:

√X Ans-1 - . 5: Rnd: Ans→M:  X ÷ M2→C:

Rnd: C - Ans => C + . 5 => Goto 1: Norm 1:

M┘√Y2(D ÷ √D2◢ C

 

例題1: 將計數機的 tan 30°的數值以平根形式表示。

注意: 計算時要使用DEG MODE

按 tan 30 EXE 再按 Prog 1 (顯示 1/3) EXE (顯示3)

所以 tan 30° = (1/3)√3

 

例題2: 化簡 √18

按 √18 EXE 再按 Prog 1  (顯示 3) EXE (顯示 2)

所以 √18 = 3√2

 

例題3: 化簡 √(8/27)

按 √(8÷27 EXE 再按 Prog 1 (顯示 2/9) EXE (顯示 6)

所以 √(8/27) = (2/9) √6

 

例題4: 化簡 (√8) / 400

按 √8 ÷ 400 EXE 再按 Prog 1 (顯示 1/200) EXE (顯示 2)

所以 (√8) / 400 = (√2) / 200

現時不少同類程式在計算例4問題時,雖然答案分母只有200,不算很大,但速度己非常慢,甚至可以說無法求得答案(fx-3650P所需時間超過30分鐘,時間實在太長),因此 很可能會誤會是無法轉化為平方根形式,本程式克服了這方面問題,能夠很快得出正確答案。

 

例題5: 將 10 + 1 ÷ √11 - 10 的小數答案轉化為簡化平方根。

按 10 + 1 ÷ √11 - 10 EXE 再按 Prog 1 (顯示 1/11) EXE (顯示 11)

所以答案 = (√11) / 11

若果使用網頁尾的附錄程式或現時流行同類程式寫法,則無法得出例5的正確答案,甚至某些情況出現錯誤答案0,本程式經過特別的調整,克服了一般常見計算的誤差問題,增加了成功轉化為平方根的機會率。

 

註1: 若果小數不能轉化為 (a/b)√c的形式(其中a,b及c為整數),程式會長時間顯示空白,這時請按AC終止程式。另外,由於程式要化簡平方根所以時間會較長,特別是c的數值較大時。

註2: 這個程式改為以答案記憶(Ans)輸入數值,與傳統使字母記憶輸入不同,主要是考慮到一般算式運算不是在程式中進行,而且可以先觀察算式計算結果Ans,在有需要情況下才執行程式 (答案為整數、分數或簡單小數等情況(例如: sin 30=0.5),那麼根本就不需要使用程式進行轉化為平方根,減慢運算速度)。若果希望程式改為傳統字母記憶輸入,可以將程式開始的 "Ans→D" 改為 "?→D"即可。

註3: 若在程式執行中(顯示空白時)按AC終止程式,計數機會保持在小數零位(Fix 0)的設定。

 

附錄程式(簡化版程式,現時不少類似程式慣常寫法,某些情況速度會很慢 ,誤差稍大時會無法得出答案)

程式編寫日期: 2008年8月7日

程式 (89 bytes)

Ans→D: D2→C: MM-: Fix 0: Lbl 0: 1M+: MC:

Rnd: MC - Ans => Goto 0: MCM→A: √A - . 5: Rnd:

Ans→B: Lbl 1: A ÷ Ans2→C: Rnd: C - Ans

=> B - 1→B => Goto 1: Norm 1: B┘M (D÷√D2◢ C

 

返回 fx-3650P及SC-185程式集