/* From Muhammad Zain Sarwar "People With an IQ of 140 Can Solve This Puzzle — Finding the Missing Number in the Triangle!" https://medium.com/puzzle-sphere/people-with-an-iq-of-140-can-solve-this-puzzle-finding-the-missing-number-in-the-triangle-370368b81d12 """ 3 9 8 44 32 75 8 4 7 2 7 ? Your task is to figure out the missing number in the bottom right corner of the third triangle! """ Representation: A B C D Manual solution: 4 = 44 / (3+8) 9 = 32 / (7+2) ? = 75 / (8+7) = 5 I.e. D = B / (A+C) No constants, which is the intended solution. AllGood: [program = B / (C + A), res = 5.00000000000000000, count = 977, rank = 10] [program = B / (A + C), res = 5.00000000000000000, count = 936, rank = 10] resultMap = [5.00000000000000000 = 2] With constants, there are some other solutions: AllGood: [program = (C - 6) * 2, res = 2, count = 931, rank = 12] [program = 5 - A / 3, res = 2.33333333333333348, count = 306, rank = 12] [program = 4 / (9 - C), res = 2.00000000000000000, count = 6, rank = 12] AllGood: [program = B / (A + C), res = 5.00000000000000000, count = 303, rank = 10] [program = (9 + A) / A, res = 2.12500000000000000, count = 9, rank = 11] [program = 2 * (C - 6), res = 2, count = 760, rank = 12] [program = 1 + 9 / A, res = 2.12500000000000000, count = 849, rank = 12] [program = 5 - A / 3, res = 2.33333333333333348, count = 1, rank = 12] [program = 4 / (9 - C), res = 2.00000000000000000, count = 12, rank = 12] [program = C - 6 + (C - 6), res = 2, count = 428, rank = 15] [program = C + C - (9 + 3), res = 2, count = 244, rank = 15] [program = C - 6 - (6 - C), res = 2, count = 1, rank = 15] [program = 9 / A + A / A, res = 2.12500000000000000, count = 19, rank = 16] [program = 9 / A + B / B, res = 2.12500000000000000, count = 3, rank = 16] [program = 9 / A + C / C, res = 2.12500000000000000, count = 122, rank = 16] [program = A / A + 9 / A, res = 2.12500000000000000, count = 19, rank = 16] [program = B / B + 9 / A, res = 2.12500000000000000, count = 2, rank = 16] [program = C / C + 9 / A, res = 2.12500000000000000, count = 17, rank = 16] [program = 1 * B / (C + A), res = 5.00000000000000000, count = 4, rank = 16] [program = (B + 4) / (A + 9), res = 4.64705882352941213, count = 66, rank = 16] [program = (9 - 7) * (C - 6), res = 2, count = 514, rank = 17] [program = (C - 6) * (9 - 7), res = 2, count = 433, rank = 17] [program = 4 - 3 + 9 / A, res = 2.12500000000000000, count = 667, rank = 17] [program = 6 - 5 + 9 / A, res = 2.12500000000000000, count = 732, rank = 17] [program = 7 - 6 + 9 / A, res = 2.12500000000000000, count = 311, rank = 17] [program = 8 - 7 + 9 / A, res = 2.12500000000000000, count = 755, rank = 17] [program = 9 / A + (4 - 3), res = 2.12500000000000000, count = 57, rank = 17] [program = 9 / A + (5 - 4), res = 2.12500000000000000, count = 1, rank = 17] [program = 9 / A + (6 - 5), res = 2.12500000000000000, count = 12, rank = 17] [program = 9 / A + (7 - 6), res = 2.12500000000000000, count = 5, rank = 17] [program = 9 / A + (8 - 7), res = 2.12500000000000000, count = 208, rank = 17] [program = 9 / A + (10 - 9), res = 2.12500000000000000, count = 1, rank = 17] [program = 9 / A - (1 - 2), res = 2.12500000000000000, count = 11, rank = 17] [program = 9 / A - (9 - 10), res = 2.12500000000000000, count = 1, rank = 17] [program = (A + 9) / (1 * A), res = 2.12500000000000000, count = 3, rank = 17] [program = (A + 9) / (A * 1), res = 2.12500000000000000, count = 146, rank = 17] [program = 1 * 1 + 9 / A, res = 2.12500000000000000, count = 46, rank = 18] [program = 2 / 2 + 9 / A, res = 2.12500000000000000, count = 15, rank = 18] [program = 3 / 3 + 9 / A, res = 2.12500000000000000, count = 4, rank = 18] [program = 4 / 4 + 9 / A, res = 2.12500000000000000, count = 5, rank = 18] [program = 5 / 5 + 9 / A, res = 2.12500000000000000, count = 93, rank = 18] [program = 7 / 7 + 9 / A, res = 2.12500000000000000, count = 100, rank = 18] [program = 9 / A + 1 * 1, res = 2.12500000000000000, count = 4, rank = 18] [program = 9 / A + 2 / 2, res = 2.12500000000000000, count = 2, rank = 18] [program = 9 / A + 4 / 4, res = 2.12500000000000000, count = 3, rank = 18] [program = 9 / A + 5 / 5, res = 2.12500000000000000, count = 1, rank = 18] [program = 9 / A + 7 / 7, res = 2.12500000000000000, count = 8, rank = 18] [program = 2 * C - 3 * 4, res = 2, count = 1, rank = 18] [program = (C - 6) / (3 / 6), res = 2.00000000000000000, count = 1, rank = 18] [program = (C - 6) / (5 / 10), res = 2.00000000000000000, count = 1, rank = 18] resultMap = [2.12500000000000000 = 35,2 = 8,5.00000000000000000 = 3,2.00000000000000000 = 3,4.64705882352941213 = 1,2.33333333333333348 = 1] */ data(missing_number11,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Data = [[[3,44,8],4], [[9,32,7],2] ], Ops = [+,-,*,/], % Ops = [+,-,*,/,div,mod,gcd,lcm], % Ops = [+,-,*,div,lcm], % Ops = [+,-,*,/,gcd,pow2], % Ops = [+,-], % Constants = [], Constants = 1..10, % Ops = [/\,\/,^,~,>>,<<,~], % Constants = 0..1, Vars = ['A','B','C'], Unknown = [8,75,7], MaxSize = 1, Params = new_map([init_size=1000, sort_by_rank=true, num_gens=1000 ]).