% % Catalan numbers in MiniZinc. % % http://en.wikipedia.org/wiki/Catalan_number % """ % C[0] = 1 % C[n+1]= sum(i in 0 .. n) (C[i]*C[n-i]) % """ % This MiniZinc model was created by Hakan Kjellerstrand, hakank@bonetmail.com % See also my MiniZinc page: http://www.hakank.org/minizinc % include "globals.mzn"; % max m for Gecode/fz and ECLiPSe/ic: 19 int: m = 19; array[0..m] of var int: C; % solve satisfy; solve :: int_search(C, "first_fail", "indomain", "complete") satisfy; constraint forall(i in 0..m) ( C[i] >= 0 ) /\ C[0] = 1 /\ forall(n in 0..m-1) ( C[n+1] = sum(j in 0..n) (C[j]*C[n-j]) ) ; output [ "C: ", show(C) ];