(* Nbre de partitions d'un entier **) (* Exemple : (1;3) et (2;2) sont des partitions de 4. L'ordre n'a pas d'importance *) (* p(n,m) est le nbre de partitions de n en au plus m sommants. On convient : p(0,m)=1 et p(n,0)=0 *) let rec p = function |0,_ -> 1 |_,0 -> 0 |n,m -> if n>=m then p (n,m-1) + p (n-m, m) else p (n,n) ;;