/* From https://medium.com/puzzle-sphere/can-you-find-the-next-number-in-the-sequence-8795b153c48a """ 5,14,27,44,65,? """ make_seq/5 with N=2 B - (A - B - 4) -> 2*B - A + 4 AllGood: [program = 4 - (A - (B + B)),res = 90,count = 84] [program = 3 - A + (B + B - (9 - 10)),res = 90,count = 83] [program = B - (A - B - 4),res = 90,count = 63] [program = 3 + 1 - (A - (B + B)),res = 90,count = 56] [program = 1 * B - (A - B - 4),res = 90,count = 52] [program = 4 - A + (B + B),res = 90,count = 41] [program = 1 + 3 - (A - (B + B)),res = 90,count = 40] [program = B + (B + 7) - A - 3,res = 90,count = 34] [program = B * 2 + 4 - A,res = 90,count = 33] [program = B * 1 - (A - B - 4),res = 90,count = 33] [program = B + B - (A - 4),res = 90,count = 29] [program = B + B + (4 - A),res = 90,count = 26] [program = B + B - (B + A - (4 + B)),res = 90,count = 24] [program = B + B - (A + 5 - 9),res = 90,count = 23] [program = 2 * B - (A + 5 - 9),res = 90,count = 22] [program = 4 - A + 2 * B,res = 90,count = 21] [program = 9 + 2 - 7 - (A - (B + B)),res = 90,count = 18] [program = B - (A - A) - (A - B - 4),res = 90,count = 11] [program = 2 * B + (4 - A),res = 90,count = 11] [program = B - A - (5 - 9 - B),res = 90,count = 3] [program = B - (B - B) - (A - B - 4),res = 90,count = 2] [program = A + B - A - (A - B - 4),res = 90,count = 1] resultMap = [90 = 22] */ data(sequence_9,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Seq = [5,14,27,44,65], N = 2, make_seq(Seq,N,Data,Unknown,Vars), Ops = [+,-,*], Constants = 1..10, MaxSize = 6, Params = new_map([% init_size=1000, num_gens=100 ]). /* Using make_point_seq/4 instead Also: skipping div, MaxSize = 6, constants 1..10, num_gens=100 A * (3 + A * 2) -> 2*A**2 + 3 A AllGood: [program = A + ((A + A) * A + (A + A)),res = 90,count = 71] [program = A * (3 + A * 2),res = 90,count = 61] [program = A * (1 * 3 + A * 2),res = 90,count = 59] [program = (1 * 3 + A * 2) * A,res = 90,count = 52] [program = (A + A) * A + (A + A) + A,res = 90,count = 51] [program = A * 1 * (1 * 3 + A * 2),res = 90,count = 49] [program = (3 + A * 2) * A,res = 90,count = 43] [program = A * 1 * (3 + A * 2),res = 90,count = 31] [program = (3 + A * 2) * (A - (A - A)),res = 90,count = 30] [program = A * 1 + ((A + A) * A + (A + A)),res = 90,count = 29] [program = (3 + A * 2) * (A + A - A),res = 90,count = 27] [program = A * (10 - 9) * (1 * 3 + A * 2),res = 90,count = 27] [program = 1 * A + ((A + A) * A + (A + A)),res = 90,count = 22] [program = (9 + 1) * A - A * 9 + ((A + A) * A + (A + A)),res = 90,count = 20] [program = (1 * 3 + A * 2) * (A * 1),res = 90,count = 18] [program = (3 + A * 2) * (A * 1),res = 90,count = 17] [program = A * (A + A) + (A * 4 - A),res = 90,count = 15] [program = A * (A + A) + (A + A + A),res = 90,count = 15] [program = (A + A) * A + (A + A) + (1 - (A - A)) * A,res = 90,count = 14] [program = A * (10 - 9) * (3 + A * 2),res = 90,count = 14] [program = A + 2 * A + A * (A + A),res = 90,count = 13] [program = (3 + A * 2) * (A * (10 - 9)),res = 90,count = 13] [program = (A + A) * A + (A + A) + 1 * A,res = 90,count = 9] [program = (A - (A - A)) * (1 * 3 + A * 2),res = 90,count = 5] [program = (A - (A - A)) * (3 + A * 2),res = 90,count = 3] [program = (1 * 3 + A * 2) * (A + A - A),res = 90,count = 3] [program = A * 4 - A + A * (A + A),res = 90,count = 1] [program = A - (A - A) + ((A + A) * A + (A + A)),res = 90,count = 1] [program = (A + A) * A + (A + A) + (A + A - A),res = 90,count = 1] [program = (A + A) * A + (A + A) + (A - (A - A)),res = 90,count = 1] [program = (A + A) * A + (A + A) + (10 * (A - A) + A),res = 90,count = 1] [program = (A + A) * A + (A + A) + A * 1,res = 90,count = 1] [program = A + (A + A) + A * (A + A),res = 90,count = 1] [program = A + 2 * A + 2 * A * A,res = 90,count = 1] [program = A * (A + A) + A * 3,res = 90,count = 1] [program = A * 3 + 2 * A * A,res = 90,count = 1] [program = (A + A - A) * (1 * 3 + A * 2),res = 90,count = 1] [program = (1 * 3 + A * 2) * (A - (A - A)),res = 90,count = 1] resultMap = [90 = 38] */ /* data(sequence_9b,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Seq = [5,14,27,44,65], make_point_seq(Seq,Data,Unknown,Vars), Ops = [+,-,*], Constants = 1..10, MaxSize = 6, Params = new_map([num_gens=100 ]). */