/* From https://www.facebook.com/APCOCoatingsFiji/photos/a.317158775376722/1063787770713815/?type=3 """ 2 5 8 14 ? """ data = [[[2,5],8],[[5,8],14]] * Seq with n=2 [program = A + (6 / 6 + B),res = 23.0,count = 8] [program = 4 + (A + A),res = 20,count = 5] [program = 1 + (A + B),res = 23,count = 5] [program = A - (8 - B - 9),res = 23,count = 4] [program = A + (4 + A),res = 20,count = 4] [program = 1 + B / 1 + A,res = 23.0,count = 2] resultMap = [23 = 2,23.0 = 2,20 = 2] Setting num_gens=1000 generates a lot of different solutions, e.g. [program = 2 * (2 + A),res = 20,count = 844] [program = 2 * (-1 + B),res = 26,count = 688] [program = (A + 3) * ((-2 + (B + B)) / B),res = 20.428571428571431,count = 107] [program = (-2 + (B + B)) / B * (A + 3),res = 20.428571428571431,count = 103] [program = 5 + (A + -4 + B),res = 23,count = 98] [program = (-2 + (A - -5)) * ((-2 + (B + B)) / B),res = 20.428571428571431,count = 71] [program = (B - A) * A - B - -7,res = 41,count = 1] [program = B + B + B - (A + 5),res = 29,count = 1] [program = B + A - 1 / ((-3 - A) / B),res = 23.272727272727273,count = 1] [program = 6 - B * (A / -5),res = 28.400000000000002,count = 1] [program = 5 - -6 + (-10 / A + A),res = 17.75,count = 1] [program = A + 4 + (A + 0),res = 20,count = 1] [program = A + (A - -7 + A - B),res = 17,count = 1] Here is the distribution of the different results: resultMap = [23 = 108,20 = 108,26 = 87,23.0 = 54,26.0 = 49,20.0 = 31,20.428571428571431 = 8,29 = 3,28.399999999999999 = 3,2 = 3,41 = 2,17 = 2,68 = 1,28.400000000000002 = 1,26.000000000000004 = 1,23.272727272727273 = 1,20.75 = 1,20.5 = 1,17.75 = 1,10.0 = 1,-13 = 1,-70 = 1] * Point sequence: No solution found. */ data(puzzle6,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Seq = [2, 5, 8, 14], Ops = [+,-,*,/], Constants = -10..10, make_seq(Seq,2,Data,Unknown,Vars), % make_point_seq(Seq,Data,Unknown,Vars), MaxSize = 21, Params = new_map(). % Params = new_map([num_gens=1000]).