/* From MindYourDecision "Find a simple pattern" https://youtu.be/hgF9-4z6nP0 """ This interview question was posted to Math StackExchange [https://math.stackexchange.com/questions/866921/interview-riddle] and people had fun trying to identify the pattern. 3×4 = 8 4×5 = 50 5×6 = 30 6×7 = 49 7×8 = ? It is understood to be an open-ended interview question, so it could possibly admit more than one solution. But the challenge is to find a simple rule that creates this pattern. """ A solution (from symbolic_regression.pi) which is unlikely to be the correct: [program = if_then_else(if_then_else(X,2,prime(Y + X)),X * (Y / 6) * Y,5 * 10),res = 50,count = 1] 224 is the intended answer in https://math.stackexchange.com/questions/866921/interview-riddle Using LCM: AllGood: [program = lcm(X,lcm(3,Y) * Y) div 6, res = 224, count = 1] AllGood: [program = (2 + lcm(lcm(X,6),Y) * Y) div 6, res = 224, count = 420] [program = (2 + lcm(lcm(X,6),Y) * Y) div (3 + 3), res = 224, count = 121] [program = (2 + lcm(lcm(X,6),Y) * Y) div (9 - 3), res = 224, count = 47] AllGood: [program = lcm(Y * Y * lcm(X,X),3) / 6, res = 224.00000000000000000, count = 796] [program = lcm(Y * Y * lcm(X,X),3) / (4 + 2), res = 224.00000000000000000, count = 512] [program = Y / (6 * Y) * lcm(Y * Y * lcm(X,X),3), res = 224.00000000000000000, count = 467] [program = lcm(Y * Y * lcm(X,X),3) / (5 + 1), res = 224.00000000000000000, count = 442] [program = lcm(Y * Y * lcm(X,X),3) * (Y / (6 * Y)), res = 224.00000000000000000, count = 398] [program = lcm(Y * Y * lcm(X,X),3) div 6, res = 224, count = 259] [program = lcm(Y * Y * lcm(X,X),3) div (4 + 2), res = 224, count = 12] [program = lcm(Y * Y * lcm(X,X),3) div floor(6), res = 224, count = 9] [program = lcm(Y * Y * lcm(X,X),3) div (5 + 1), res = 224, count = 7] [program = lcm(Y * Y * lcm(X,X),3) / lcm(6,2), res = 224.00000000000000000, count = 3] [program = lcm(Y * Y * lcm(X,X),3) div (6 div 1), res = 224, count = 2] [program = lcm(Y * Y * lcm(X,X),3) / (6 * 2 - 6), res = 224.00000000000000000, count = 2] [program = lcm(Y * Y * lcm(X,X),3) div (6 mod 9), res = 224, count = 1] [program = lcm(Y * Y * lcm(X,X),3) div lcm(6,2), res = 224, count = 1] [program = lcm(Y * Y * lcm(X,X),3) div (6 * 2 - 6), res = 224, count = 1] [program = lcm(Y * Y * lcm(X,X),3) div (9 - 3), res = 224, count = 1] [program = lcm(Y * Y * lcm(X,X),3) / (6 mod 9), res = 224.00000000000000000, count = 1] [program = lcm(Y * Y * lcm(X,X),3) / lcm(3,2), res = 224.00000000000000000, count = 1] Using GCD: AllGood: [program = Y * X * Y / gcd(X * (pow2(Y) * X),6), res = 224.00000000000000000, count = 1] resultMap = [224.00000000000000000 = 1] */ data(mind_your_decision3,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Data = [[[3,4],8], [[4,5],50], [[5,6],30], [[6,7],49] ], Ops = [+,-,*,/,div,mod,gcd,lcm], % Ops = [+,-,*,/,gcd], Constants = 1..10, Vars = ['X','Y'], Unknown = [7,8], MaxSize = 23, Params = new_map([init_size=1000, num_gens=1000 ]).