Мне нужно написать функцию в OCaml partitions: int -> int
, которая вычисляет количество способов записать строго положительное целое число n
в виде суммы строго положительных целых чисел. Мне удалось написать функцию, которая возвращает количество способов записать n
в виде суммы k
целых чисел, но я не могу сделать это для всех k
. Вот мой код:
let rec partition n k =
match k with
| k when k > n -> 0
| k when k = n -> 1
| 1 -> 1
| _ -> (partition (n-1) (k-1)) + (partition (n-k) k);;
let partitions n =
let result = 0 in
for i = 1 to n do result = result + i done; result;;
Моя функция partition n k
работает, но моя функция partitions n
(та, которую я должен сделать) не работает...
Спасибо за вашу помощь !