Начать с рекуррентных соотношений в любом случае стоит. Получится из них что-то лучше или нет — другой вопрос.
Пусть мощность алфавита
(число цифр на выбор), и интересующее число мультимножеств из
цифр с не более чем
повторами каждой зовётся
. Теперь надо угадать, какие соотношения дадут пользу. Возьмём, например, алфавит из
цифры, предположив, что для менших мы всё знаем. Мы можем добавить к известным последовательностям из
цифр
новой цифры и получить последовательности из
. Если поинтересоваться новыми последовательностями одинаковой длины, получится
Если мы знаем
, этого соотношения хватит на вычисление всех
. Ну а
— это число
последовательностей мультимножеств из одной единицы длины
, в которых не больше
единиц. Таких существует ровно одна, если
, и ноль в противном случае, что можно кратко записать как
. Всё, уже можно считать:
Если заметить, что
, вычисления даже немного упростятся.
А теперь, имея рекуррентные соотношения, можно поискать производящую функцию (видно, что можно брать её от двух переменных, зафиксировав
) и замкнутое выражение для
через неё.
Проверьте кто-нибудь мои цифорки.
-- Сб авг 23, 2014 19:58:47 --Для производящей функции
получим