/* Triangles https://puzzles9.com/puzzles/number-sequence-puzzles-with-answers/ Puz1063 """ All three triangles are interconnected. Find the answer by deriving a relation between them. 2 5 3 4 7 5 9 1 2 6 1 11 ? 5 9 Answer : 10 Difference of numbers in first two pentagons is in third pentagon at same location. difference of 2,5 = 3 4,5 = 1 7,9 = 2 6,11 = 5 1,10 = 9 So, answer is 10. """ * Here's the intended representation of the problem (representation 1) which give the expected solutution (? = 10): 2,3,5, 4,1,5 7,2,9 6,5,11 1,9,? [program = B + A,res = 10,count = 44] [program = A + B,res = 10,count = 39] [program = A + 1 * B,res = 10,count = 11] [program = 1 * (B + A),res = 10,count = 11] [program = (B + A) * 1,res = 10,count = 9] [program = (A + B) * 1 * 1,res = 10,count = 9] [program = 1 * (A + B),res = 10,count = 9] [program = A + B * 1,res = 10,count = 8] [program = B * 1 + A,res = 10,count = 7] [program = 1 * B + A,res = 10,count = 7] [program = B + 1 * A,res = 10,count = 6] [program = (1 * B + A) * 1,res = 10,count = 6] [program = (B + A) * 1 * 1,res = 10,count = 6] [program = 1 + (B + A - 1),res = 10,count = 5] [program = (B + A) * (1 * 1),res = 10,count = 5] [program = (A + B) * (1 * 1),res = 10,count = 5] [program = 1 * ((A + B) * 1),res = 10,count = 5] [program = B + A + (1 - 1),res = 10,count = 4] [program = A * 1 + B,res = 10,count = 4] [program = 1 * A + B,res = 10,count = 4] [program = B + A * 1,res = 10,count = 4] [program = (A + B) * (1 + (1 - 1)),res = 10,count = 4] [program = 1 - 1 + (A + B),res = 10,count = 3] [program = (A + B) * 1,res = 10,count = 3] [program = A + B + 1 - 1,res = 10,count = 2] [program = B + A - (1 - 1),res = 10,count = 2] [program = A + 1 - (1 - B),res = 10,count = 2] [program = 1 + B - (1 - A),res = 10,count = 2] [program = 1 - 1 + A + B,res = 10,count = 2] [program = A + A + (B - A),res = 10,count = 2] [program = 1 + A + (B - 1),res = 10,count = 2] [program = A + B + B - 1 * B,res = 10,count = 1] [program = A + B + B - B,res = 10,count = 1] [program = A + A + (B - 1) - (A - 1),res = 10,count = 1] [program = B * 1 + B - (B - A),res = 10,count = 1] [program = B + B - (B - A),res = 10,count = 1] [program = B + 1 - (1 - A),res = 10,count = 1] [program = B + 1 - (1 - A) * 1,res = 10,count = 1] [program = A + B - (1 - 1),res = 10,count = 1] [program = (B + 1) * 1 - (1 - A),res = 10,count = 1] [program = B - (1 - A - 1),res = 10,count = 1] [program = A - (1 - 1 - B),res = 10,count = 1] [program = B + A - B + B,res = 10,count = 1] [program = A * 1 - A + (A + B) * 1,res = 10,count = 1] [program = B - A + (A + A),res = 10,count = 1] [program = B - 1 + (1 + A),res = 10,count = 1] [program = A - B + (B + B),res = 10,count = 1] [program = A - 1 + (B + 1),res = 10,count = 1] [program = B - 1 + 1 + A,res = 10,count = 1] [program = A - 1 + B + 1,res = 10,count = 1] [program = 1 - 1 + B + 1 * A,res = 10,count = 1] [program = 1 - 1 + A + B * 1,res = 10,count = 1] [program = A + A + 1 + (B - A - 1),res = 10,count = 1] [program = B + 1 + (A - 1),res = 10,count = 1] [program = 1 * B * 1 + A,res = 10,count = 1] [program = B * 1 + A * 1 * 1,res = 10,count = 1] [program = B * 1 + A * 1,res = 10,count = 1] [program = B * 1 + 1 * A,res = 10,count = 1] [program = A * 1 + B * 1,res = 10,count = 1] [program = A * 1 + 1 * B,res = 10,count = 1] [program = 1 * A + B * 1,res = 10,count = 1] [program = 1 * A + 1 * B,res = 10,count = 1] [program = B + (1 - (1 - A)),res = 10,count = 1] [program = B + (A - 1 + 1),res = 10,count = 1] [program = A + (1 + B - 1),res = 10,count = 1] [program = A + (B - 1 + 1),res = 10,count = 1] [program = A + (B + (1 - 1)),res = 10,count = 1] [program = (A + B) * 1 * (1 * 1),res = 10,count = 1] resultMap = [10 = 68] * Another representation (which is not the indended one), below called representation 2 finds some alternatives solutions. A B C D E E is the unknown. The program finds some different solutions: [program = 1 - B + A * A,res = 21,count = 75] [program = A * A - C + (1 - B + C),res = 21,count = 74] [program = (D - C) * C + (1 + C),res = 28,count = 65] [program = 1 + A * A - B,res = 21,count = 60] [program = A * A - C + (D - A),res = 22,count = 58] [program = A * A - (B - 1),res = 21,count = 46] [program = A * A - (B * 1 - 1),res = 21,count = 45] [program = A * A + (1 - B),res = 21,count = 34] [program = 1 + A * A - 1 * B,res = 21,count = 33] [program = A * 1 * A + (1 - B),res = 21,count = 29] [program = 1 + A * A - B * 1,res = 21,count = 24] [program = A * A - C - (A - D),res = 22,count = 1] resultMap = [21 = 9,22 = 2,28 = 1] Adding pow_mod2/2 as operator give some other solutions: [program = A * A * 1 - (B - 1),res = 21,count = 98] [program = pow_mod2(C - D,C),res = -512,count = 89] [program = pow_mod2(C - D,C * 1),res = -512,count = 84] [program = pow_mod2(C - D,1 * C),res = -512,count = 75] [program = pow_mod2(C - D,1 + 1),res = 4,count = 64] [program = 1 - B + A * A * 1,res = 21,count = 57] [program = pow_mod2(C - D,(1 + 1) * 1),res = 4,count = 40] [program = pow_mod2(C - D,C * B),res = -88832,count = 39] [program = pow_mod2(C - D,1 * (D - A)),res = 64,count = 38] [program = (C * 1 - D) * (C - D),res = 4,count = 31] [program = pow_mod2(C - D,pow_mod2(A,1) - 1),res = 16,count = 27] [program = pow_mod2(C - D,B + 1),res = 64,count = 22] [program = 1 - B + A * A,res = 21,count = 21] [program = pow_mod2(C - D,C - B + 1),res = -32,count = 17] [program = pow_mod2(C - D,1 * D - A),res = 64,count = 15] [program = pow_mod2(C - D,1 + B),res = 64,count = 10] [program = (C - D) * (C - D),res = 4,count = 6] [program = pow_mod2(C - D,pow_mod2(C,1)),res = -512,count = 3] [program = pow_mod2(C * 1 - D,C * B * 1),res = -88832,count = 1] [program = pow_mod2(C * 1 - D,C),res = -512,count = 1] [program = pow_mod2(1 * C - D,pow_mod2(A - 1,B)),res = 137216,count = 1] [program = pow_mod2(1 * C - D,1 + B),res = 64,count = 1] [program = pow_mod2(C - D,pow_mod2(1 + 1,1)),res = 4,count = 1] [program = pow_mod2(C - D,pow_mod2(1 * C,1)),res = -512,count = 1] [program = pow_mod2(C - D,A - 1),res = 16,count = 1] resultMap = [-512 = 6,64 = 5,4 = 5,21 = 3,16 = 2,-88832 = 2,137216 = 1,-32 = 1] */ data(triangles,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Matrix = [[2,4,7,6,1], [3,1,2,5,9], [5,5,9,11,_] ], Ops = [+,-,*], % Ops = [+,-,*,pow_mod2], Constants = 1..1, make_data_matrix(Matrix.transp,Data,Unknown,Vars), % make_data_matrix(Matrix,Data,Unknown,Vars), MaxSize = 4, Params = new_map([num_gens=100]).