小數近似值轉換為可能分數

更新日期: 2011年10月10日

程式由網友 3173137 提供,可以計算小數近似值誤差範圍內可能的分數。

注意: 10x是按shift log。

程式 (165 bytes)

Ans→A: ?→A: ?→B: 2→M: ?→M: 1M-:

A - . 5 10x - B→C: 2A - C→D: Lbl 0: Fix 0: 1M+:

CM + . 5: Rnd: Ans≧DM => Goto 0: CM:

Rnd: Ans + (CM>Ans→X: DM: Rnd: Ans - (Ans≧DM→Y:

X=Y => X→A => M→B => Goto 1: Norm 2: X◢ Y◢ M◢

Goto 0: Lbl 1: A÷B - . 5: Rnd: A - BAns→Y: B→A:

Y→B => Goto 1: A - 1 => Goto 0: Norm 2: X◢ M◢ Goto 0


 

註1: 顯示X及Y表示分子,M表示分母。當出現Y時表示同一個分母有多於一個可能分數,分子可能的值由X至Y的整數。

註2: 輸入的小數為正數,否則計算有可能不成立。

註3: 程式不會自動終止,因為有無限個可能的分數,若要終止程式請按 AC 或 ON。

註4: 程式若在執行中未顯示任何數值答案(X、Y或Z)時按 AC 或 ON終止程式,計算機會保留在小數0位的設定,請自行清除這個設定。

註5: 預設計算的近似值為Ans記憶的數值(之前計算結果),輸入時只要直接 EXE 輸入即可,若是其它數值請自行輸入。

 

例題: 數值0.5準確至小數1位,試計算這個近似值可能的分數。

按 Prog 1 再按 0.5 EXE (數值) 1 EXE (準確至小數1位)

EXE (輸入開始分母數值,直接按 EXE 則接受預設值2開始,顯示X為1)

EXE (顯示M為2,即第一個可能分數為 1/2)

EXE (顯示X為5) EXE (顯示Y為6,由於出現Y表示分子可能的範圍是 5至6的整數)

EXE (顯示M為11,即第二及第三個可能分為 5/11及6/11)

...............

若要終止程式,請按 AC。

 

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

 

 

 

Free Web Hosting