/* Dots and Boxes Number of lines Calculate the formula of the number of lines for the dots and boxes problem (just for fun :-)). For R rows and C columns, I manually calculated this as (C-1)*(R*2-1)+(C-1) Is there a neater formula? [program = C * 2 * R * 1 - (R + (1 + 1 - (1 * 1 - 2) * (C - 2))),res = 4,count = 92] [program = (R + R) * 1 * C - (R + C),res = 4,count = 70] [program = C * 2 * R * 1 - (R + C),res = 4,count = 55] [program = (R + R) * 1 * C - (R + (1 + 1 - (1 * 1 - 2) * (C - 2))),res = 4,count = 50] [program = (2 * R - 1) * C - (1 - 1) - R,res = 4,count = 44] [program = (R + R) * 1 * C - (C + R) * 1,res = 4,count = 37] [program = (R + R) * 1 * C - (C + R),res = 4,count = 27] [program = C * 2 * R * 1 - (C + R),res = 4,count = 17] [program = R * (C * 2) - (R + C),res = 4,count = 16] [program = 2 - 2 + (R - (2 - 2) + R) * C - (C + R),res = 4,count = 12] [program = C * R - C - 2 + (R * C + 2 - R),res = 4,count = 11] [program = (2 * R - 1) * C - (1 - 1) - (2 + (R - 2)),res = 4,count = 6] [program = (2 * R - 1) * C - (1 - 1) - (R + 1 - 1),res = 4,count = 3] [program = 2 - 2 + (R - (2 - 2) + R) * C - (R + (1 + 1 - (1 * 1 - 2) * (C - 2))),res = 4,count = 1] resultMap = [4 = 14] Mathematica: In[1]:= (((R * (C + C)) - C) - R) Out[1]= -C - R + 2 C R In[1]:= C * 2 * R * 1 - (R + (1 + 1 - (1 * 1 - 2) * (C - 2))) Out[1]= -C - R + 2 C R */ data(dots_and_boxes,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Data = [[[3,2],7], [[3,4],17], [[4,3],17], [[3,3],12], [[5,5],40] ], Unknown = [2,2], Vars = ['R','C'], Ops = [+,-,*], Constants = 1..2, MaxSize = 21, Params = new_map([num_gens=100]).