/* https://puzzles9.com/puzzles/number-sequence-puzzles-with-answers/ Puz1057 """ 2 8 4 9 3 7 6 9 6 8 3 ? Answer : 4 Calculate the difference of numbers in each row. it follows a particular sequence like 6,5,4,3,2,1. 8 – 2 = 6 9 – 4 = 5 7 – 3 = 4 9 – 6 = 3 8 – 6 = 2 4 – 3 = 1 So, answer is 4. """ Since there are both "6 9" and "6 8" in the data, we cannot use the simple representation. Let's test the extended variant: 0 0 2 8 2 8 4 9 4 9 3 7 3 7 6 9 6 9 6 8 6 8 3 ? That doesn't work. However, it works if we add an index to each row (1..6): 1 2 8 2 4 9 3 3 7 4 6 9 5 6 8 6 3 ? [program = B - (A - 7),res = 4,count = 12] [program = 7 - A + B,res = 4,count = 10] [program = 7 + (B - A),res = 4,count = 9] [program = B - A + 7,res = 4,count = 8] [program = 10 - A + (B - 3),res = 4,count = 8] [program = 7 - (A - B),res = 4,count = 7] [program = B + 4 + (3 - A),res = 4,count = 6] [program = B + 7 - A,res = 4,count = 3] [program = B + (7 - A),res = 4,count = 3] [program = 10 - A - (3 - B),res = 4,count = 1] [program = 3 - A + (B + 4),res = 4,count = 1] resultMap = [4 = 11] */ data(puz1057,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- % Data = [ % [[0,0,2],8], % [[2,8,4],9], % [[4,9,3],7], % [[3,7,6],9], % [[6,9,6],8] % ], Data = [ [[1,2],8], [[2,4],9], [[3,3],7], [[4,6],9], [[5,6],8] ], Unknown = [6,3], Vars = ['A','B'], Ops = [+,-], Constants = 1..10, MaxSize = 3, Params = new_map(). % This does not work /* data(puz1057,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Data = [ [[0,0,2],8], [[2,8,4],9], [[4,9,3],7], [[3,7,6],9], [[6,9,6],8] ], Unknown = [6,8,3], Vars = ['A','B','C'], Ops = [+,-], Constants = 1..10, MaxSize = 21, Params = new_map(). */