/* https://medium.com/math-simplified/can-you-really-solve-this-third-grade-math-puzzle-b6c1b7637971 """ Can you really Solve this Third-Grade Math Puzzle? 1 5 2 10 3 55 10 ? """ One thought: 1 -> 5 just given 10 -> 2*1 * 5 - 0 55 -> 3*2 * 10 - 5 ? -> 10*3 * 55 - 10 = 1640 ?? My JGAP Symbplic Regression finds: -2 V2 + 5 V3 + V1 V2 V3 0,0,1,5 1,5,2,10 2,10,3,55 3,55,10,? Solutions: [program = 5 - 5 * A + (A + A * A) * B,res = 650,count = 1] [program = B * (C * A) - (B - 5),res = 1600,count = 1] [program = A * (C * B) - (B - 5),res = 1600,count = 1] [program = 5 + (B * C + -5) * A,res = 1640,count = 1681] [program = (B * C + -5) * A + 5,res = 1640,count = 1678] [program = (B * C + -5) * A + (7 + -2),res = 1640,count = 1625] [program = (B * C + -5) * A + (-6 + (2 + 10 - 1)),res = 1640,count = 1381] [program = (B * C + -5) * A + ((A - A) * -2 + 5),res = 1640,count = 1055] [program = (B * C + -5) * A + (-3 + 8),res = 1640,count = 965] [program = (B * C + -5) * A + (0 + 5),res = 1640,count = 913] [program = (B * C + -5) * A + (C - A + -5 + 9),res = 1646,count = 748] [program = (B * C + -5) * A + (-10 - -10 + 5),res = 1640,count = 709] [program = (B * C + -5) * A + (0 + 3 + 5 + (2 - 5)),res = 1640,count = 681] [program = 5 * (C - A) + (B * C + -5) * A,res = 1670,count = 649] [program = (B * C + -5) * A + 5 * (C - A),res = 1670,count = 614] [program = (B * C + -5) * A + (10 + -5),res = 1640,count = 566] [program = (B * C + -5) * A + (5 + 0),res = 1640,count = 537] [program = (B * C + -5) * A + (-2 - -7),res = 1640,count = 502] [program = (B * C + -5) * A + (-2 + (10 - 3)),res = 1640,count = 437] [program = (B * C + -5) * A + (9 + (7 - 6 - 5)),res = 1640,count = 433] [program = 7 + -2 + (B * C + -5) * A,res = 1640,count = 341] [program = (B * C + -5) * A + (8 - 3),res = 1640,count = 288] [program = (B * C + -5) * A - -5,res = 1640,count = 246] [program = (A - A) * -2 + 5 + (B * C + -5) * A,res = 1640,count = 235] [program = (B * C + -5) * A + (1 * -5 - -10),res = 1640,count = 222] [program = C - A + -5 + 9 + (B * C + -5) * A,res = 1646,count = 159] [program = (B * C + -5) * A + (4 - (3 + -4)),res = 1640,count = 127] [program = -10 - -10 + 5 + (B * C + -5) * A,res = 1640,count = 114] [program = -6 + (2 + 10 - 1) + (B * C + -5) * A,res = 1640,count = 99] [program = -3 + 8 + (B * C + -5) * A,res = 1640,count = 91] [program = 0 + 5 + (B * C + -5) * A,res = 1640,count = 87] [program = 10 + -5 + (B * C + -5) * A,res = 1640,count = 53] [program = 5 + 0 + (B * C + -5) * A,res = 1640,count = 45] [program = 0 + 3 + 5 + (2 - 5) + (B * C + -5) * A,res = 1640,count = 43] [program = -2 - -7 + (B * C + -5) * A,res = 1640,count = 37] [program = 9 + (7 - 6 - 5) + (B * C + -5) * A,res = 1640,count = 34] [program = -2 + (10 - 3) + (B * C + -5) * A,res = 1640,count = 34] [program = 8 - 3 + (B * C + -5) * A,res = 1640,count = 27] [program = C - (-6 + A - -2) + (B * C + -5) * A,res = 1646,count = 21] [program = 1 * -5 - -10 + (B * C + -5) * A,res = 1640,count = 20] [program = 4 - (3 + -4) + (B * C + -5) * A,res = 1640,count = 18] [program = (B * C + -5) * A + (C - (-6 + A - -2)),res = 1646,count = 18] [program = (B * C + -5) * A - (B - B + -5),res = 1640,count = 7] [program = (B * C + -5) * A + (9 - (-6 + 10)),res = 1640,count = 7] [program = (B * C + -5) * A - (5 + -10),res = 1640,count = 5] [program = (B * C + -5) * A - 5 * (A - C),res = 1670,count = 5] [program = 3 - -2 + (B * C + -5) * A,res = 1640,count = 5] [program = (B * C + -5) * A + (5 * 0 + -2 - -7),res = 1640,count = 5] [program = (B * C + -5) * A + (3 - -2),res = 1640,count = 5] [program = (B * C + -5) * A - (-5 - A * 0 * A),res = 1640,count = 4] [program = (B * C + -5) * A - (-9 - -4),res = 1640,count = 4] [program = 7 - 2 + (B * C + -5) * A,res = 1640,count = 4] [program = (B * C + -5) * A + (7 - 2),res = 1640,count = 4] [program = (B * C + -5) * A - (5 + (-2 - 8)),res = 1640,count = 3] [program = -5 + C - -10 - C + (B * C + -5) * A,res = 1640,count = 3] [program = 5 * 0 + -2 - -7 + (B * C + -5) * A,res = 1640,count = 3] [program = 9 - (-6 + 10) + (B * C + -5) * A,res = 1640,count = 3] [program = (B * C + -5) * A - (0 * 3 - 5),res = 1640,count = 2] [program = (B * C + -5) * A - (-8 - -3),res = 1640,count = 2] [program = (B * C + -5) * A - (-10 + 5),res = 1640,count = 2] [program = (B * C + -5) * A - 5 * -1,res = 1640,count = 2] [program = B * 0 - -5 + (B * C + -5) * A,res = 1640,count = 2] [program = 5 - (1 + -1) + (B * C + -5) * A,res = 1640,count = 2] [program = 1 - -4 + (B * C + -5) * A,res = 1640,count = 2] [program = -3 - -8 + (B * C + -5) * A,res = 1640,count = 2] [program = 4 + 1 + (B * C + -5) * A,res = 1640,count = 2] [program = (B * C + -5) * A - (B - (5 + B)),res = 1640,count = 1] [program = (B * C + -5) * A - (B - 5 * C),res = 1630,count = 1] [program = (B * C + -5) * A - (4 - 9),res = 1640,count = 1] [program = (B * C + -5) * A - (2 - 7),res = 1640,count = 1] [program = (B * C + -5) * A - (2 + (-8 - -1)),res = 1640,count = 1] [program = C + 10 - (C - -5) + (B * C + -5) * A,res = 1640,count = 1] [program = 10 - 5 + (B * C + -5) * A,res = 1640,count = 1] [program = 9 - 4 + (B * C + -5) * A,res = 1640,count = 1] [program = 4 - -1 + (B * C + -5) * A,res = 1640,count = 1] [program = C * 5 - B - B + B + (B * C + -5) * A,res = 1630,count = 1] [program = 5 - B + B + (B * C + -5) * A,res = 1640,count = 1] [program = 10 + (3 + -8) + (B * C + -5) * A,res = 1640,count = 1] [program = 1 + 4 + (B * C + -5) * A,res = 1640,count = 1] [program = (B * C + -5) * A + (4 - 2 - 5 - -8),res = 1640,count = 1] [program = (B * C + -5) * A + (-5 + C - -10 - C),res = 1640,count = 1] [program = (B * C + -5) * A + (8 - 3 - 0),res = 1640,count = 1] [program = (B * C + -5) * A + (10 - 5),res = 1640,count = 1] [program = (B * C + -5) * A + (5 - 0 * -10),res = 1640,count = 1] [program = (B * C + -5) * A + (4 - -1),res = 1640,count = 1] [program = (B * C + -5) * A + (2 - -3),res = 1640,count = 1] [program = (B * C + -5) * A + (0 - -5),res = 1640,count = 1] [program = (B * C + -5) * A + (-3 - -8),res = 1640,count = 1] [program = (B * C + -5) * A + (-5 - -10),res = 1640,count = 1] [program = (B * C + -5) * A + (C * 5 - B - B + B),res = 1630,count = 1] [program = (B * C + -5) * A + (B - B + 5),res = 1640,count = 1] resultMap = [1640 = 78,1646 = 4,1670 = 3,1630 = 3] Cf http://hakank.org/jgap/puzzle3.conf */ data(puzzle3,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- % Data = [ [[1],5], % [[2],10], % [[3],55] % ], Data = [ [[0,0,1],5], [[1,5,2],10], [[2,10,3],55] ], Ops = [+,-,*], Constants = -10..10, Vars = ['A','B','C'], Unknown = [3,55,10], MaxSize = 7, Params = new_map([ stop_criteria=generation, num_gens=1800 ]).