/* https://puzzles9.com/puzzles/number-sequence-puzzles-with-answers/2/ Puz241 """ 4 1 10 4 22 10 46 22 3 8 18 ?? """ Encoded as A B C * Representation 1 data = [[[4,1],3], [[10,4],8], [[22,10],18]] unknown = [46,22] [program = (A + A + B) / 3,res = 38.0,count = 1] [program = (B + (A + A)) / 3,res = 38.0,count = 1] program = to_num2(B,8) / 6,res = 38.0,count = 1] (4 + (1-4) / 3) = 3 (10 + (4-10) / 3) = 8 (22 + (10-22) / 3) = 18 (46 + (22-46) / 3) = 38 * Representation 2 data = [[[4,10,22],46],[[1,4,10],22]] unknown = [3,8,18] [program = 4 * B + 6,res = 38,count = 1] [program = 2 + C * 2,res = 38,count = 1] [program = C + C + 5 - 3,res = 38,count = 6] [program = to_num2(A,8) - B + 8,res = 38,count = 1] [program = B * 4 + 6,res = 38,count = 1] [program = 2 + (B * C / B + C),res = 38.0,count = 3] [program = C + C + 2,res = 38,count = 8] [program = 8 - (6 - C) + C,res = 38,count = 5] [program = C + (2 + C),res = 38,count = 4] The intended solution: """ Answer : 38 In the above puzzle, add 2 to the twice of left number in the top row to get the next number in the same location of next box. similarly do for remaining numbers,. 4*2 + 2 = 10*2 + 2 = 22*2 + 2 = 46 ; 1*2 + 2 = 4*2 + 2 = 10*2 + 2 = 22 ; 3*2 + 2 = 8*2 + 2 = 18*2 + 2 = 38 ; So, answer is 38. """ */ data(puz241,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Matrix = [[ 4, 1, 3], [10, 4, 8], [22,10,18], [46,22, _] ], % make_data_matrix(Matrix,Data,Unknown,Vars), % Representation 1 make_data_matrix(Matrix.transp,Data,Unknown,Vars), % Representation 2 Ops = [+,-,*,/,to_num2], Constants = 1..10, MaxSize = 21, Params = new_map().