合24解答(II)

程式由網友SuperMANganese提供。

這個程式是網友參考3173137編寫的合24解答(I)程式改編而成,改善之處是可以嘗試所有可能性,包括第(I)版不能嘗試的情況(例如: a - (b+(c×d)) , a - (b×c+d) , ...等形式),由於本程式於可以嘗試所有可能性,因此程式顯示無解則表示真正無解(第(I)版的無解可能不是真正的無解),另一個之改善之處是找出一組解後,可以繼續嘗試找其它的解答,絕大多數情況下能找出所有解 。


答案形式為 ( (AXB) Y C ) Z D ,其中A, B, C, D為數值,X, Y, Z為運算符號 ,程式會先顯示XYZ的值,再顯示A, B, C, D出現的順序(以八位數整數表示,例如: 01020312即A=01, B=02, C=03, D=12)。X, Y, Z使用數字1, 2, 3, 4表示+, - , ×, ÷ ,5表示 - 但被減數及減數的位置要對調,6表示 ÷ 但被除數及除數的位置要對調。若果出現負數XYZ答案的形式為(AXB)Y(CZD),詳情請看各例題。

 

網友提供程式日期: 2009年6月27日

程式需要在 SD 模式下執行,因此在選擇新程式位置後,按 4 選用SD模式。

注意: 藍色的英文字為統計模式中的變數( n 按 Shift 1 3 ),E 是按 EXP,h是按 Shift 7 → 2

程式 (532 bytes)

?→A: ?→B: ?→C: ?→D: Fix 0: FreqOn: ; 0 DT: Goto 1: Lbl 0:

If n - 2Rnd( n÷2: Then C→M: D→C: M→D: Goto 1:IfEnd: B→M:

D→B: M→D: Lbl 1: 1→X: 1→Y: Lbl 3: A+B→M: X=2 => A-B+h→M:

X=3 => AB→M: X=4 => A÷B→M: Y=1 => M+C→M: Y=2 => M-C→M:

Y=3 => MC→M: Y=4=> M÷C→M: Y=5=> C-M→M: Y=6 => C÷M→M:

If Y-7: Then M+D=24 => Goto 7: M-D = 24 => 2 => Goto 7: MD=24 => 3 => Goto 7:

M=24D => 4 => Goto 7: D-M = 24 => 5 => Goto 7: D=24M => 6 => Goto 7:

Else -X→X: -1→Y:M+CD=24 => -3 => Goto 7: M+C÷D=24 => -4 => Goto 7:

-2→Y:M-CD=24 => -3 => Goto 7: M-C÷D=24 => -4 => Goto 7:

-3→Y:24=M(C+D => -1 => Goto 7: 24=M(C-D => -2 => Goto 7:

-4→Y:M=24(C+D => -1 => Goto 7: M=24(C-D => -2 => Goto 7:

1-X→X: 0→Y: IfEnd: Lbl 9: Y+1→Y: X - 5 => Goto 3: A→M: B→A:

C→B: D→C: M→D: ; 4-1 DT: n=6 => 137A-1n-1→M: Ans => MAn

n=Rnd( n => Goto 0: Goto 1: Lbl 7: Norm 1: E2X + E1Y + Ans ◢

E6A+ E4B +E2C +D◢ X<0 => 1-X→X: Ans => 0→Y: Fix 0: Goto 9

 

註1: 程式會不斷嘗試不同的可能性(最多4224種可能),所以計算時間可能會較長,另外若程式找不出解答, 最後會顯示137。

 

例題1: 若四個數值分別為1, 3, 7, 6,求這四個數值合24的解答。

按 Prog 1 再按 1 EXE 3 EXE 7 EXE

6 EXE (顯示353,代表運算符號順序為 ×, - , ×,要注意5要將答案中被減數及減數對調位置答案)

EXE (顯示1030706(即01030706),代表答數值的順序為1, 3, 7, 6)

所以最後答案為 (7 - (1×3) ) × 6 。


 

例題2: 若四個數值分別為6, 7, 8, 9,求這四個數值合24的解答。

按 Prog 1 再按 6 EXE 7 EXE 8 EXE

9 EXE (顯示 - 342,代表運算符號順序為 ×, ÷, -,負數代表是(A×B)÷(C-D) 的形式)

EXE (顯示6080907(即06080907),代表答數值的順序為6, 9, 8, 7)

所以最後答案為 (6×8)÷(9-7)

註2: 這個例題第(I)版程式無法求得解答。

 

例題3: 若四個數值分別為2, 5, 5, 10,求這四個數值合24的解答。

按 Prog 1 再按 2 EXE 5 EXE 5 EXE

10 EXE (顯示453,代表運算符號為 ÷, -, ×,要注意5要將答案中被減數及減數對調位置答案)

EXE (顯示1070306(即02100505),代表答數值的順序為2, 10, 5, 5)

所以最後答案為 (5 - (2 ÷10) ) × 5 。

註3: 這個例題第(I)版程式無法求得解答。

 

例題4: 若四個數值分別為5, 6, 7, 10,求這四個數值合24的解答。

按 Prog 1 再按 5 EXE 6 EXE 7 EXE

10 EXE (顯示137表示無解)

 

註4: 有關合24遊戲的解答,可以參考以下網址:

http://www.semple.edu.hk/mpn185/misc/math24/worksheet/main/worksheet.pdf

 

返回 CASIO fx-50FH、fx-3650P II、fx-50FH II及fx-50F PLUS 程式集