Нахождение количества разбиений числа на слагаемые — различия между версиями
Antonkov (обсуждение | вклад) (добавил теги) |
|||
Строка 61: | Строка 61: | ||
* [http://kvant.mirror1.mccme.ru/1988/11/razbienie_chisel.htm Вайнштейн Ф., Разбиение чисел. Журнал "Квант" № 11, 1988 год] | * [http://kvant.mirror1.mccme.ru/1988/11/razbienie_chisel.htm Вайнштейн Ф., Разбиение чисел. Журнал "Квант" № 11, 1988 год] | ||
* [http://oeis.org/A000041 Последовательность на OEIS] | * [http://oeis.org/A000041 Последовательность на OEIS] | ||
+ | [[Категория: Дискретная математика и алгоритмы]] | ||
+ | [[Категория: Комбинаторика]] |
Версия 23:51, 11 декабря 2011
Задача: По заданному числу количество его различных разбиений на слагаемые так что .
найтиСодержание
Алгоритм за n sqrt(n)
Существует несколько алгоритмов решения данной задачи. Рассмотрим самый быстрый алгоритм нахождения количества разбиений числа
на слагаемые, который работает за .Итак, обозначим количество таких разбиений за
.Рассмотрим следующее бесконечное произведение
После раскрытия скобок каждый член произведения получается в результате умножения мономов (одночленов), взятых по одному из каждой скобки. Если в первой скобке взять , во второй — и т.д., то их произведение будет равно Значит, после раскрытия скобок получится сумма мономов вида .Можно увидеть, что
встретится в полученной бесконечной сумме столько раз, сколькими способами можно представить как сумму Каждому такому представлению отвечает разбиение числа на единиц, двоек и т.д. Таким образом очевидно получаются все разбиения, так как из первой скобки мы можем взять любое , где то есть произвольное количество единиц в нашем разбиении. Аналогично, мы можем взять произвольное количество двоек и т.д. Но при раскрытии скобок мы находим произведения всех возможных комбинации множителей из разных скобок. Поэтому коэффициент при равен числу разбиений .Посмотрим теперь на выражения в скобках. Каждое из них — бесконечная геометрическая прогрессия. По формуле ее суммирования:
- ,
и т.д. Теперь наш результат можно записать так:
Рассмотрим произведение
, т.е. знаменатель правой части формулы . Раскрывая в нём скобки, получим следующий результат:Показатели степеней в правой части — пятиугольные числа, т.е. числа вида , а знаки при соответствующих мономах равны . Исходя из этого наблюдения, Эйлер предположил, что должна быть верна следующая теорема, впоследствии названная его именем.
Теорема (Пентагональная теорема Эйлера): |
Доказательство: |
Пентагональная теорема оказалась «крепким орешком» — Эйлер сумел доказать её лишь 14 лет спустя. TODO: скурить доказательство |
Умножим обе части равенства (1) на
и воспользуемся пентагональной теоремой:- (2)
Начнем раскрывать скобки, для наглядности мономы с одинаковыми степенями x пишем друг под другом:
// тут ужасное быдлоформатирование, не знаю как нормально расположить друг под другом
Так как p(0) = 1, то оно сокращается с единицей справа. Так что чтобы выражение (2) было удовлетворено при любом x, все коэффициенты должны быть равны 0(вроде так). Поэтому:
и т.д.
Получаем формулу Эйлера, позволяющую последовательно находить числа
:- .
Ну и объяснение асимптотики
- так как , получаем порядка , а так как находим n-е число, то получаем .