<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ushakovfedor</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ushakovfedor"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Ushakovfedor"/>
		<updated>2026-05-03T10:58:50Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9D%D0%B0%D1%85%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B5%D0%BD%D0%B8%D0%B9_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BD%D0%B0_%D1%81%D0%BB%D0%B0%D0%B3%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5&amp;diff=74940</id>
		<title>Нахождение количества разбиений числа на слагаемые</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9D%D0%B0%D1%85%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B5%D0%BD%D0%B8%D0%B9_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BD%D0%B0_%D1%81%D0%BB%D0%B0%D0%B3%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5&amp;diff=74940"/>
				<updated>2020-06-30T17:55:56Z</updated>
		
		<summary type="html">&lt;p&gt;Ushakovfedor: /* Алгоритм за O(N3/2) */ Алгоритм за n^(3/2) не является самым быстрым, задача решается за nlogn&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Задача&lt;br /&gt;
|definition =&lt;br /&gt;
 По заданному числу &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; найти количество его различных разбиений на положительные слагаемые&amp;lt;ref name=&amp;quot;amount&amp;quot; /&amp;gt; &amp;lt;tex&amp;gt; m_0 + m_1 + m_2 + \ldots + m_k = n &amp;lt;/tex&amp;gt; так, что при всех &amp;lt;tex&amp;gt; i\colon m_i \leqslant m_{i+1} &amp;lt;/tex&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Алгоритм за O(N&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;)==&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;P(n, m, k)&amp;lt;/tex&amp;gt; — количество разбиений числа &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; слагаемых, каждое из которых не превосходит &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Имеет место следующее рекуррентное соотношение:&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;P(n, m, k) = &lt;br /&gt;
\left \{\begin{array}{ll}P(n, m, k - 1) + P(n - k, m - 1, k), &amp;amp; 0 &amp;lt; m \leqslant n, 0 &amp;lt; k \leqslant n \\&lt;br /&gt;
P(n, m, n), &amp;amp; k &amp;gt; n \\&lt;br /&gt;
1, &amp;amp; n = 0, m = 0 \\&lt;br /&gt;
0, &amp;amp; \text{otherwise} \end{array} \right. &lt;br /&gt;
&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим множество разбиений числа &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; слагаемых, каждое из которых не больше &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;. Разделим его на две непересекающиеся группы — в первой будут все&lt;br /&gt;
разбиения, которые не содержат в качестве старшего слагаемого &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;. Таких разбиений &amp;lt;tex&amp;gt;P(n, m, k - 1)&amp;lt;/tex&amp;gt;. Во второй — все разбиения со старшим слагаемым &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;. Их столько же, сколько разбиений числа &amp;lt;tex&amp;gt;n - k&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;m - 1&amp;lt;/tex&amp;gt; слагаемое, каждое из которых не больше &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;, то есть &amp;lt;tex&amp;gt;P(n - k, m - 1, k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Количество всех разбиений числа равно &amp;lt;tex&amp;gt;\sum\limits_{i=0}^nP(n, i, n)&amp;lt;/tex&amp;gt;.  Реализация данного алгоритма методом [[Динамическое программирование|динамического программирования]] с меморизацией будет иметь асимптотику &amp;lt;tex&amp;gt;O(n^{3})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм за O(N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) ==&lt;br /&gt;
Обозначим &amp;lt;tex&amp;gt;P(n,k)&amp;lt;/tex&amp;gt; — количество разбиений числа &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на слагаемые, каждое из которых не превосходит &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;. Оно удовлетворяет следующей рекурентной формуле:&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;P(n,k) = \left \{  &lt;br /&gt;
\begin{array}{ll}  P(n,k - 1) + P(n - k, k), &amp;amp; 0 &amp;lt; k \leqslant n \\  &lt;br /&gt;
P(n, n), &amp;amp; k &amp;gt; n \\&lt;br /&gt;
1, &amp;amp; n = 0, k = 0 \\&lt;br /&gt;
0, &amp;amp; n \neq 0 , k = 0  \end{array}  \right.&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заметим, что нам не нужно считать количество слагаемых &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; в разбиении. Достаточно посчитать &amp;lt;tex&amp;gt;P(n, k)&amp;lt;/tex&amp;gt; — количество разбиений числа &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на произвольное количество слагаемых, каждое из которых не больше &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;. Рассмотрим множество таких разбиений. Разделим его на две непересекающиеся группы. В первую войдут те разбиения, в которых отсутствует слагаемое &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;. Очевидно, таких разбиений &amp;lt;tex&amp;gt;P(n, k - 1)&amp;lt;/tex&amp;gt;. Во второй группе — те разбиения, в которые слагаемое &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вошло. Их количество совпадает с количеством разбиений числа &amp;lt;tex&amp;gt;n - k&amp;lt;/tex&amp;gt; на слагаемые, каждое из которых не превосходит &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;, и равно &amp;lt;tex&amp;gt;P(n - k, k)&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Количество всех разбиений числа &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; равно &amp;lt;tex&amp;gt;P(n,n)&amp;lt;/tex&amp;gt;. Асимптотика &amp;lt;tex&amp;gt;O(n^{2})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм за O(N&amp;lt;sup&amp;gt;3/2&amp;lt;/sup&amp;gt;) ==&lt;br /&gt;
Рассмотрим алгоритм нахождения количества разбиений числа &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на слагаемые, который работает за &amp;lt;tex&amp;gt; O(n \sqrt{n}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Итак, обозначим количество таких разбиений за &amp;lt;tex&amp;gt; p(n) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующее бесконечное произведение:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; (1 + x + x^2 + \dots)(1 + x^2 + x^4 + \dots) \dots (1 + x^k + x^{2k} + \dots) \dots &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После раскрытия скобок каждый член произведения получается в результате умножения мономов (одночленов), взятых по одному из каждой скобки. Если в первой скобке взять &amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;x^{m_1}&amp;lt;/tex&amp;gt;, во второй — &amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;x^{2m_2}&amp;lt;/tex&amp;gt; и т.д., то их произведение будет равно &amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;x^{m_1 + 2m_2 + 3m_3 + \dots}.&amp;lt;/tex&amp;gt; Значит, после раскрытия скобок получится сумма мономов вида &amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;x^{m_1 + 2m_2 + 3m_3 + \dots}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно увидеть, что &amp;lt;tex&amp;gt; x^n &amp;lt;/tex&amp;gt; встретится в полученной бесконечной сумме столько раз, сколькими способами можно представить &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; как сумму &amp;lt;tex&amp;gt;m_1 + 2m_2 + 3m_3 + ...&amp;lt;/tex&amp;gt; Каждому такому представлению отвечает разбиение числа &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;m_1&amp;lt;/tex&amp;gt; единиц, &amp;lt;tex&amp;gt;m_2&amp;lt;/tex&amp;gt; двоек и т.д. Таким образом, очевидно, получаются все разбиения, так как из первой скобки мы можем взять любое &amp;lt;tex&amp;gt;x^{m_i}&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m_i \in [0 \dots \infty),&amp;lt;/tex&amp;gt; то есть произвольное количество единиц в нашем разбиении. Аналогично, мы можем взять произвольное количество двоек и т.д. Но при раскрытии скобок мы находим произведения всех возможных комбинации множителей из разных скобок. Поэтому коэффициент при &amp;lt;tex&amp;gt;x^n&amp;lt;/tex&amp;gt; равен числу разбиений &amp;lt;tex&amp;gt;p(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Посмотрим теперь на выражения в скобках. Каждое из них — бесконечная геометрическая прогрессия. Полагая &amp;lt;tex&amp;gt;0 \leqslant x &amp;lt; 1&amp;lt;/tex&amp;gt;, по формуле ее суммирования:&lt;br /&gt;
: &amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;1 + x + x^2 + x^3 + \dots = \frac{1}{1 - x}&amp;lt;/tex&amp;gt;,&lt;br /&gt;
: &amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;1 + x^2 + x^4 + x^6 + \dots = \frac{1}{1-x^2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
: &amp;lt;tex&amp;gt;\dots&amp;lt;/tex&amp;gt;&lt;br /&gt;
: &amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;1 + x^k + x^{2k} + x^{3k} + \dots = \frac{1}{1-x^k}&amp;lt;/tex&amp;gt;&lt;br /&gt;
: &amp;lt;tex&amp;gt;\dots&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запишем теперь [[Производящая функция|производящую функцию]] последовательности &amp;lt;tex&amp;gt;p(n)&amp;lt;/tex&amp;gt;:&lt;br /&gt;
: &amp;lt;tex dpi = &amp;quot;145&amp;quot;&amp;gt;p(0) + p(1) x + p(2) x^2 + p(3) x^3 + \dots = \frac{1}{(1-x)(1-x^2)(1-x^3)\dots}&amp;lt;/tex&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;tex&amp;gt;(1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим произведение &amp;lt;tex&amp;gt;(1-x)(1-x^2)(1-x^3)...&amp;lt;/tex&amp;gt;, т.е. знаменатель правой части формулы &amp;lt;tex&amp;gt;(1)&amp;lt;/tex&amp;gt;. Раскрывая в нём скобки, получим следующий результат:&lt;br /&gt;
: &amp;lt;tex&amp;gt;(1 - x)(1 - x^2)(1 - x^3) ... = 1 - x - x^2 + x^5 + x^7 - x^{12} - x^{15} + x^{22} + x^{26} - x^{35} - x^{40} + ...&amp;lt;/tex&amp;gt;&lt;br /&gt;
Показатели степеней в правой части — пятиугольные числа&amp;lt;ref name=&amp;quot;pentagon&amp;quot; /&amp;gt;, т.е. числа вида &amp;lt;tex&amp;gt;(3q^2 \pm q)/2&amp;lt;/tex&amp;gt;, а знаки при соответствующих мономах равны &amp;lt;tex&amp;gt;(-1)^q&amp;lt;/tex&amp;gt;. Исходя из этого наблюдения, Эйлер предположил, что должна быть верна следующая теорема, впоследствии названная его именем.&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
| about =&lt;br /&gt;
Пентагональная теорема Эйлера&lt;br /&gt;
| statement = &lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt; \prod\limits_{k=1}^\infty \left(1-x^k \right) = \sum\limits_{q=-\infty}^\infty (-1)^q x^{\frac{3q^2+q}{2}}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| proof =&lt;br /&gt;
&amp;lt;tex&amp;gt;A = (1-x)(1-x^2)(1-x^3)...(1-x^n)...&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Раскроем в этом произведении первые &amp;lt;tex&amp;gt;22&amp;lt;/tex&amp;gt; скобки. Мы получим выражение &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;A = [1-x-x^2+x^5+x^7-x^{12}-x^{15}+x^{22}+...]\times(1-x^{23})(1-x^{24})...(1-x^n)...&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где в квадратной скобке точками обозначены слагаемые, содержащие &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; в более высокой степени, чем &amp;lt;tex&amp;gt;22&amp;lt;/tex&amp;gt;. Не будем выписывать эти члены, так как после умножения квадратной скобки на &amp;lt;tex&amp;gt;1-x^{23}&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;1-x^{24}&amp;lt;/tex&amp;gt; и т.д. они изменятся. Выписанные же члены больше меняться не будут. Поэтому, если раскрыть все скобки, то получится бесконечный ряд, первые члены которого имеют вид&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;A=1-x-x^2+x^5+x^7-x^{12}-x^{15}+x^{22}+...&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Анализируя этот ряд, Эйлер пришел к выводу, что, если превратить бесконечное произведение &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;A = (1-x)(1-x^2)(1-x^3)...(1-x^n)...&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в ряд, то в этом ряду отличны от нуля лишь слагаемые, вида &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;(-1)^q x^{\frac{3q^2+q}{2}}&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; — натуральное число.&lt;br /&gt;
&lt;br /&gt;
При раскрытии скобок в исходном произведении слагаемое &amp;lt;tex&amp;gt;\pm x^N&amp;lt;/tex&amp;gt; встретится столько раз, сколькими способами можно разбить число &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; на различные слагаемые. При этом, если число слагаемых четно, то появляется &amp;lt;tex&amp;gt;x^N&amp;lt;/tex&amp;gt;, а если это число нечетно, то появляется &amp;lt;tex&amp;gt;-x^N&amp;lt;/tex&amp;gt;. Например, разбиению &amp;lt;tex&amp;gt;12=5+4+2+1&amp;lt;/tex&amp;gt; соответствует слагаемое &amp;lt;tex&amp;gt;(-x^5)(-x^4)(-x^2)(-x^1)=x^{12},&amp;lt;/tex&amp;gt; а разбиению &amp;lt;tex&amp;gt;12=5+4+3&amp;lt;/tex&amp;gt; — слагаемое &amp;lt;tex&amp;gt;(-x^5)(-x^4)(-x^3)=-x^{12}&amp;lt;/tex&amp;gt;. Таким образом, коэффициент при &amp;lt;tex&amp;gt;x^N&amp;lt;/tex&amp;gt; в разложении &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; в ряд равен разности между количеством разбиений &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; на четное число различных слагаемых и количеством разбиений &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; на нечетное число различных слагаемых. Тогда теорему можно переформулировать следующим образом:&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
| about = &lt;br /&gt;
Переформулировка пентагональной теоремы&lt;br /&gt;
| statement = &lt;br /&gt;
Если число &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; не может быть представлено в виде &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;N =\frac{3q^2+q}{2}&amp;lt;/tex&amp;gt;, то оно имеет одинаковое количество разбиений на четное и на нечетное число различных слагаемых. А для чисел вида &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;N =\frac{3q^2+q}{2}&amp;lt;/tex&amp;gt; разность между этими количествами равна &amp;lt;tex&amp;gt;(-1)^q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Иными словами, если &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; четно, то на одно больше разбиений на четное число слагаемых, а если &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; нечетно, то на одно больше разбиений на нечетное число слагаемых. Докажем эту теорему с помощью диаграмм Юнга&amp;lt;ref name=&amp;quot;young&amp;quot; /&amp;gt;. Покажем несколько способов превращения диаграммы с четным числом строк  диаграмму из стольких же точек с нечетным числом строк и обратно.&lt;br /&gt;
&lt;br /&gt;
Так как мы рассматриваем лишь разбиения на различные слагаемые, то диаграммы таких разбиений состоят из нескольких трапеций, поставленных друг на друга. Обозначим число точек в верхней строке диаграммы через &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;, а число строк нижней трапеции через &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; (на рис. 1 слева   изображена диаграмма, для которой &amp;lt;tex&amp;gt;m=2&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;n=3&amp;lt;/tex&amp;gt;).&lt;br /&gt;
[[Файл:Diagramma_2_3.jpg|thumb|right|500px|Рис. 1. &amp;lt;tex&amp;gt;m = 2, n = 3&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
'''Преобразование 1.''' Предположим, что диаграмма содержит не менее двух трапеций, причем &amp;lt;tex&amp;gt;m \leqslant n&amp;lt;/tex&amp;gt;. В этом случае отбросим первую строку из &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; точек, но удлиним последние &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; строк нижней трапеции на одну точку (рис. 1). После этого общее число точек не изменится, все строки окажутся различной длины, но четность числа строк изменится.&lt;br /&gt;
&lt;br /&gt;
Точно такое же преобразование можно сделать, если диаграмма состоит из одной  трапеции, но &amp;lt;tex&amp;gt;n \geqslant m+1&amp;lt;/tex&amp;gt;. Стираем верхнюю строку и к нижним &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; строчкам приписываем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; точек.&lt;br /&gt;
&lt;br /&gt;
'''Преобразование 2.'''Пусть теперь диаграмма опять содержит не менее двух трапеций, но &amp;lt;tex&amp;gt;m &amp;gt; n&amp;lt;/tex&amp;gt;. Тогда от каждой строки последней трапеции возьмем по одной точке и составим из них первую строку (из &amp;lt;tex&amp;gt; n &amp;lt;/tex&amp;gt; точек) новой диаграммы. Это можно сделать, так как &amp;lt;tex&amp;gt;m &amp;gt; n&amp;lt;/tex&amp;gt;, и поэтому составленная строка короче первой строки исходной диаграммы. Кроме того, так как мы взяли все строки будут иметь различную длину. Наконец, новая диаграмма содержит столько же точек, что и исходная, но четность числа строк изменилась - новая диаграмма содержит еще одну строку.&lt;br /&gt;
&lt;br /&gt;
Преобразование 2 допускают и диаграммы, состоящие из одной трапеции, если &amp;lt;tex&amp;gt;n \leqslant m - 2&amp;lt;/tex&amp;gt; (появляющаяся первая строка состоит из &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; точек, она должна быть короче бывшей первой строки, уменьшившейся до &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; точки).&lt;br /&gt;
&lt;br /&gt;
Легко видеть, что описанные преобразования взаимно обратны - если сначала сделать одно из них, а потом второе, то снова получим исходную диаграмму. Кроме того, для каждой диаграммы может быть допустимо лишь одно из этих преобразований. Таким образом, диаграммы разбиений числа &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt;, допускающие одно из этих преобразований, распадаются на пары диаграмм с четным и нечетным числом строк, поэтому их одинаковое число.&lt;br /&gt;
&lt;br /&gt;
Осталось выяснить, какие же диаграммы не допускают ни одного из описанных преобразований. Ясно, что эти диаграммы состоят из одной трапеции, причем для них либо &amp;lt;tex&amp;gt;m=n&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;m=n+1&amp;lt;/tex&amp;gt;. В первом случае диаграмма содержит&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;n+(n+1)+(n+2)+\dots+(2n-1)=\frac{3n^2-n}{2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
точек, а во втором - на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; точек больше, т.е. &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;\frac{3n^2+n}{2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Приведенные рассуждения показывают, что если &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; не является числом вида &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;\frac{3n^2 \pm n}{2}&amp;lt;/tex&amp;gt;, то оно имеет поровну разбиений на четное и нечетное число различных слагаемых.&lt;br /&gt;
&lt;br /&gt;
Очевидно также, что равенства &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;N=\frac{3n^2+n}{2}&amp;lt;/tex&amp;gt; и &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt;N=\frac{3l^2-l}{2}&amp;lt;/tex&amp;gt; одновременно выполняться не могут, поэтому если &amp;lt;tex dpi =&amp;quot;145&amp;quot;&amp;gt;N=\frac{3n^2\pm n}{2}&amp;lt;/tex&amp;gt;, то без пары останется ровно одна диаграмма, не допускающая преобразования и имеющая &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; строк (слагаемых &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt;). Если &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; - четное число, то разбиений на четное число слагаемых окажется на &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; больше, чем на нечетное число слагаемых. Если же &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; - нечетное число, то на &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; больше будет разбиений на нечетное число слагаемых. Теорема доказана.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Умножим обе части равенства &amp;lt;tex&amp;gt;(1)&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;\prod\limits_{k=1}^\infty \left(1-x^k \right) &amp;lt;/tex&amp;gt; и воспользуемся пентагональной теоремой:&lt;br /&gt;
: &amp;lt;tex&amp;gt; ( p(0) + p(1) x + p(2) x^2 + \dots)(1 - x - x^2 + x^5 + x^7 - x^{12} - x^{15} + \dots) = 1 &amp;lt;/tex&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;tex&amp;gt;(2)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начнем раскрывать скобки, для наглядности мономы с одинаковыми степенями &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; пишем друг под другом:&lt;br /&gt;
: &amp;lt;tex&amp;gt; p(0) + p(1)x + p(2) x^2 + p(3) x^3 + p(4) x^4 + p(5) x^5 + p(6) x^6 + \dots &amp;lt;/tex&amp;gt;&lt;br /&gt;
::&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;tex&amp;gt; - p(0)x - p(1) x^2 - p(2) x^3 - p(3) x^4 - p(4) x^5 - p(5) x^6 - \dots &amp;lt;/tex&amp;gt;&lt;br /&gt;
::::&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;tex&amp;gt;  - p(0) x^2 - p(1) x^3 - p(2) x^4 - p(3) x^5 - p(4) x^6 - \dots &amp;lt;/tex&amp;gt;&lt;br /&gt;
::::::::::::: &amp;amp;nbsp;&amp;lt;tex&amp;gt;+ p(0) x^5 + p(1) x^6 + \dots &amp;lt;/tex&amp;gt;     &lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;p(0) = 1&amp;lt;/tex&amp;gt;, то оно сокращается с единицей справа. Так что, чтобы выражение &amp;lt;tex&amp;gt;(2)&amp;lt;/tex&amp;gt; было удовлетворено при любом &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;, все коэффициенты должны быть равны &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;. Поэтому:&lt;br /&gt;
: &amp;lt;tex&amp;gt; p(1) = p(0) &amp;lt;/tex&amp;gt;&lt;br /&gt;
: &amp;lt;tex&amp;gt; p(2) = p(1) + p(0) &amp;lt;/tex&amp;gt;&lt;br /&gt;
: &amp;lt;tex&amp;gt; p(3) = p(2) + p(1) &amp;lt;/tex&amp;gt;&lt;br /&gt;
: &amp;lt;tex&amp;gt; p(4) = p(3) + p(2) &amp;lt;/tex&amp;gt;&lt;br /&gt;
: &amp;lt;tex&amp;gt; p(5) = p(4) + p(3) - p(0) &amp;lt;/tex&amp;gt;&lt;br /&gt;
: &amp;lt;tex&amp;gt;...&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Получаем формулу Эйлера, позволяющую последовательно находить числа &amp;lt;tex&amp;gt;p(n)&amp;lt;/tex&amp;gt;:&lt;br /&gt;
: &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt; p(n) = p(n-1) + p(n-2)+ ... + (-1)^{q+1} (p\left(n - \frac{3q^2 - q}{2}\right) + p\left(n - \frac{3q^2 + q}{2}\right)) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Асимптотика &amp;lt;tex&amp;gt; O(n \sqrt{n}) &amp;lt;/tex&amp;gt; получается следующим образом. Так как &amp;lt;tex dpi=&amp;quot;145&amp;quot;&amp;gt; n - \frac{3q^2 + q}{2} \geqslant 0 &amp;lt;/tex&amp;gt; , то получаем &amp;lt;tex&amp;gt; q &amp;lt;/tex&amp;gt; порядка &amp;lt;tex&amp;gt; \sqrt{n} &amp;lt;/tex&amp;gt;, а так как находим &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-е число, то получаем &amp;lt;tex&amp;gt; O(n \sqrt{n}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;amount&amp;quot;&amp;gt;[http://oeis.org/A000041 Последовательность 000041 на OEIS]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;pentagon&amp;quot;&amp;gt;[http://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%B3%D1%83%D1%80%D0%BD%D1%8B%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0#.D0.9F.D1.8F.D1.82.D0.B8.D1.83.D0.B3.D0.BE.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D1.87.D0.B8.D1.81.D0.BB.D0.B0 Википедия {{---}} Пятиугольные числа]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;young&amp;quot;&amp;gt;[http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B1%D0%B8%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0#.D0.94.D0.B8.D0.B0.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D1.8B_.D0.AE.D0.BD.D0.B3.D0.B0 Википедия {{---}} Диаграммы Юнга]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==См. также==&lt;br /&gt;
* [[Числа Стирлинга первого рода]]&lt;br /&gt;
* [[Числа Стирлинга второго рода]]&lt;br /&gt;
* [[Производящая функция]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Pentagonal_number_theorem Wikipedia {{---}} Pentagonal number theorem]&lt;br /&gt;
* [http://kvant.mirror1.mccme.ru/1988/11/razbienie_chisel.htm Вайнштейн Ф., Разбиение чисел. Журнал &amp;quot;Квант&amp;quot; № 11, 1988 год]&lt;br /&gt;
* Н.Я. Виленкин &amp;quot;Комбинаторика&amp;quot;, 2007. стр. 138-141.&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Комбинаторика]]&lt;/div&gt;</summary>
		<author><name>Ushakovfedor</name></author>	</entry>

	</feed>