/* https://puzzles9.com/puzzles/number-sequence-puzzles-with-answers/ Puz253 """ 5 _ 4 7 _ 1 _ 2 _ _ 5 _ 11 _ 4 13 _ 3 ?? _ 4 _ 4 _ 20 _ 4 """ Encoded as E _ A _ B _ C _ D * Representation 1: All these solutions are probably not correct since all values are not used: [program = B - 1 + (D + (1 - 1)),res = 7,count = 9] [program = B - 1 + D,res = 7,count = 8] [program = D - (1 - B),res = 7,count = 7] [program = B - (1 - D),res = 7,count = 7] [program = D - 1 + B,res = 7,count = 7] [program = B - 1 * 1 + D,res = 7,count = 7] [program = B + (D - 1),res = 7,count = 7] [program = 1 + D - (1 + (1 - B)),res = 7,count = 6] [program = 1 * (B + D - 1),res = 7,count = 6] [program = 1 * D + (B - 1 * 1),res = 7,count = 5] [program = B + D - 1,res = 7,count = 4] [program = B + (D - 1 * 1),res = 7,count = 4] [program = D * 1 + B - 1,res = 7,count = 3] [program = (B + D - 1) * 1,res = 7,count = 3] [program = 1 * 1 * 1 * (B + D - 1),res = 7,count = 3] [program = (1 - 1) * 1 + (B + D - 1),res = 7,count = 2] [program = C - B - A,res = 12,count = 1] [program = C - A - 1 * B,res = 12,count = 1] [program = D + B * 1 - 1,res = 7,count = 1] [program = D + B - 1,res = 7,count = 1] [program = (B + D) * 1 - 1,res = 7,count = 1] resultMap = [7 = 19,12 = 2] Another run, adding to_num2/2 and to_num3/3: [program = D + (B - 1),res = 7,count = 29] [program = B + (D - 1),res = 7,count = 26] [program = D - to_num3(1,1,1) + to_num3(1,1 * 1,B),res = 7,count = 23] [program = B + (D * 1 - 1),res = 7,count = 22] [program = D - 1 + 1 * B,res = 7,count = 21] [program = D - 1 + B,res = 7,count = 13] [program = C - (B + A),res = 12,count = 11] [program = B - (1 - D),res = 7,count = 9] [program = B / 1 + (D * 1 - 1),res = 7.0,count = 6] [program = 1 + B / 1 + (D - 1 - 1),res = 7.0,count = 6] [program = D - 1 + B * 1,res = 7,count = 5] [program = B + D - 1,res = 7,count = 1] [program = D - (1 - 1 * B),res = 7,count = 1] resultMap = [7 = 10,7.0 = 2,12 = 1] * Representation 2 (transposed data matrix) No solution. The intended solution: """ Answer : 12 In each box, sum of numbers in first column divided by sum of numbers in third column gives middle number in second column. (5+11) ÷ (4+4) = 2 (7+13) ÷ (1+3) = 5 (20+12) ÷ (4+4) = 4 So, answer is 12. """ */ data(puz253,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Matrix = [ [4,2,11,4,5], [1,5,13,3,7], [4,4,20,4,_] ], Ops = [+,-,*,/,to_num2,to_num3], Constants = [1], % ++ [random(-10,10) : _ in 1..10], make_data_matrix(Matrix,Data,Unknown,Vars), % make_data_matrix(Matrix.transp,Data,Unknown,Vars), MaxSize = 21, Params = new_map([num_gens=30]).