/* Fibonacci "expanded" version 1,1,2,3 1,2,3,5 2,3,5,8 3,5,8,13 5,8,13,21 8,13,21,34 13,21,34,55 21,34,55,89 34,55,89,144 55,89,144,233 89,144,233,377 Note: Just for demonstration, here we generate N=2..3 (2 is sufficient) * For n = 2: [program = A + B,res = 34,count = 79] [program = B + A,res = 34,count = 35] [program = (A + B) * 1,res = 34,count = 6] [program = 1 * (B + A),res = 34,count = 2] [program = (B + A) / 1,res = 34.0,count = 1] [program = B / 1 + A,res = 34.0,count = 1] [program = B + A + (A - A),res = 34,count = 1] [program = A * (5 / 5) + B,res = 34.0,count = 1] [program = A * 1 + B,res = 34,count = 1] [program = B + A / 1,res = 34.0,count = 1] [program = A + (1 * B + 7 - 7),res = 34,count = 1] resultMap = [34 = 7,34.0 = 4] * For n = 3 [program = B + C,res = 34,count = 69] [program = A + (5 - 5 + B + B),res = 34,count = 20] [program = C + B,res = 34,count = 14] [program = C - A + C,res = 34,count = 4] [program = B + A + B,res = 34,count = 3] [program = B + (B + A),res = 34,count = 2] [program = (C - (A - A - B)) / 1,res = 34.0,count = 1] [program = (C + B) / 1,res = 34.0,count = 1] [program = C - B + (5 - 5 + B + B),res = 34,count = 1] [program = B - 7 + (7 + C),res = 34,count = 1] [program = A - A + B + C,res = 34,count = 1] [program = C / C * A + (5 - 5 + B + B),res = 34.0,count = 1] [program = C + B * 3 / (1 * 3),res = 34.0,count = 1] resultMap = [34 = 9,34.0 = 4] */ data(fibonacci,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- % member(N,1..1), % For closed form. Nope. member(N,2..3), println(n=N), make_seq([1,1,2,3,5,8,13,21],N,Data,Unknown,Vars), Ops = [+,-,*,/], Constants = 1..10, MaxSize = 21, Params = new_map([approx=0.1, show_only_good=true ]).