/* From https://twitter.com/vardi/status/1566070939586027520 """ Machine learning :-) Math break! 1,3,5,7,... What number will be next? """ Here are some solutions: [program = A + (A - A / A),res = 9.0,count = 81] [program = A - A / A + A,res = 9.0,count = 74] [program = A + ((A - A) / -40 + A - A / A),res = 9.0,count = 73] [program = A + A + -1,res = 9,count = 68] [program = A + A + (A - (A + A)) / A,res = 9.0,count = 52] [program = (A - A) / -40 + A - A / A + A,res = 9.0,count = 49] [program = A / (A / A) + ((A - A) / -40 + A - A / A),res = 9.0,count = 48] [program = A - A + (A - A / A + A),res = 9.0,count = 35] [program = A - A / A + A + -48 * (A - A),res = 9.0,count = 31] [program = (A - A / A + A) / (A / A),res = 9.0,count = 20] [program = (A - (A + A)) / A + (A + A),res = 9.0,count = 20] [program = -1 + (A + A),res = 9,count = 12] [program = A - A / A + A - (40 + -40),res = 9.0,count = 10] [program = (A - A / A + A) / 1,res = 9.0,count = 1] [program = A + A - 1,res = 9,count = 1] resultMap = [9.0 = 12,9 = 3] From another run (with 1000 generations) I found some other goodies: [program = ((99 / (-3 + A / -25) - (89 - 98) / (74 * -54 * -100)) / A + A) / A / (A * -26 - A) * (A - A) + (A - A / A + A),res = 9.0,count = 1] [program = 0 / (A - 21 + A / A - -43 - A - A - -10 + (A + 29)) + A + (A - 1),res = 9.0,count = 1] Both simplifies to -1 + 2 A */ data(moshe_vardi,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Seq = [1,3,5,7], make_point_seq(Seq,Data,Unknown,Vars), Ops = [+,-,*,/], Constants = -100..100, MaxSize = 21, Params = new_map([num_gens=100]). % Params = new_map([num_gens=1000]).