/* From http://in.answers.yahoo.com/question/index?qid=20091119001407AAMWPf5 1,2, 2,12, 3,90, 4,104 Beware that ** /2 might blow up. Solutions: [program = A * (A ** A + A),res = 15650,count = 9] [program = (A + 0) * (A ** A + A),res = 15650,count = 8] [program = (A ** A + A) * (1 * A),res = 15650,count = 7] [program = (A ** A + A) * A,res = 15650,count = 3] [program = (A ** A + A) * (A + 0),res = 15650,count = 1] resultMap = [15650 = 5] * Using the restricted pow_mod2/2 works (and it doesn't blow up) [program = A * (pow_mod2(A,A) + A),res = 15650,count = 22] [program = (pow_mod2(A,A) + A) * A,res = 15650,count = 15] [program = (pow_mod2(A,A) + A) * (A / 1),res = 15650.0,count = 14] [program = (0 + A) * (pow_mod2(A,A) + A),res = 15650,count = 11] [program = (A - 0) * (pow_mod2(A,A) + A),res = 15650,count = 8] [program = A * 1 * (pow_mod2(A,A) + A),res = 15650,count = 4] resultMap = [15650 = 5,15650.0 = 1] However, pow_mod/3 does not seems to work... Cf http://hakank.org/jgap/sequence_puzzle.conf */ data(sequence_4,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- make_point_seq([2,12,90,1040],Data,Unknown,Vars), println(data=Data), % Ops = [+,-,*,/,**], % often blows up Ops = [+,-,*,/,pow_mod2], Constants = 0..10, MaxSize = 21, Params = new_map([num_gens=30]).