<?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=Haposiwe</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=Haposiwe"/>
		<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/Haposiwe"/>
		<updated>2026-08-02T03:07:42Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%BE%D0%BD%D0%BE%D1%82%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%B4%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8F%D1%85,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D1%81%D0%B2%D1%8F%D0%B7%D0%B8_%D0%B4%D0%BB%D0%B8%D0%BD%D1%8B_%D0%9D%D0%92%D0%9F_%D0%B8_%D0%9D%D0%A3%D0%9F&amp;diff=63001</id>
		<title>Задача о монотонных подпоследовательностях, теорема о связи длины НВП и НУП</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%BE%D0%BD%D0%BE%D1%82%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%B4%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8F%D1%85,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D1%81%D0%B2%D1%8F%D0%B7%D0%B8_%D0%B4%D0%BB%D0%B8%D0%BD%D1%8B_%D0%9D%D0%92%D0%9F_%D0%B8_%D0%9D%D0%A3%D0%9F&amp;diff=63001"/>
				<updated>2017-12-24T15:08:03Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Изменения в &amp;quot;см. также&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Последовательность''' (англ. ''sequence'') {{---}} это набор элементов некоторого множества пронумерованный натуральными числами. Последовательность является результатом последовательного выбора элементов множества. При этом элементы последовательности могут повторяться. В частности, последовательность не является подмножеством заданного множества.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Виды последовательностей ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''''неубывающей''''' (англ. ''nondecreasing''), если каждый элемент этой последовательности не превосходит следующего за ним. &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; &amp;amp;mdash; '''''неубывающая''''' &amp;lt;tex&amp;gt;\Leftrightarrow\forall n \in \mathbb N: x_n \leqslant x_{n+1}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''''невозрастающей''''' (англ. ''nonincreasing''), если каждый следующий элемент этой последовательности не превосходит предыдущего. &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; &amp;amp;mdash; '''''невозрастающая''''' &amp;lt;tex&amp;gt;\Leftrightarrow\forall n \in \mathbb N: x_n \geqslant x_{n+1}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''''возрастающей''''' (англ. ''increasing''), если каждый следующий элемент этой последовательности превышает предыдущий. &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; &amp;amp;mdash; '''''возрастающая''''' &amp;lt;tex&amp;gt;\Leftrightarrow\forall n \in \mathbb N: x_n &amp;lt; x_{n+1}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''''убывающей''''' (англ. ''decreasing''), если каждый элемент этой последовательности превышает следующий за ним. &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; &amp;amp;mdash; '''''убывающая''''' &amp;lt;tex&amp;gt;\Leftrightarrow\forall n \in \mathbb N: x_n &amp;gt; x_{n+1}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность называется '''монотонной''' (англ. ''monotonic''), если она является неубывающей, либо невозрастающей.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность называется '''строго монотонной''' (англ. ''strictly monotonic''), если она является возрастающей, либо убывающей.&lt;br /&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;
|author=&lt;br /&gt;
|about=&lt;br /&gt;
|statement=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; {{---}} перестановка чисел длины &amp;lt;tex&amp;gt;n, l&amp;lt;/tex&amp;gt; {{---}} длина наибольшей возрастающей подпоследовательности ([[Задача о наибольшей возрастающей подпоследовательности|НВП]]), &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; {{---}} длина наибольшей убывающей подпоследовательности (НУП). Тогда &amp;lt;tex&amp;gt;l k \geqslant n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим два массива длины &amp;lt;tex&amp;gt;n : S &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt; S_i &amp;lt;/tex&amp;gt; {{---}} длина НВП, которая заканчивается на &amp;lt;tex&amp;gt;a_i&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; T_i &amp;lt;/tex&amp;gt; {{---}} длина НУП, которая начинается на &amp;lt;tex&amp;gt;a_i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Докажем, что все пары &amp;lt;tex&amp;gt;(S_i, T_i)&amp;lt;/tex&amp;gt; различны.&lt;br /&gt;
Пусть существуют такие &amp;lt;tex&amp;gt;i &amp;lt; j&amp;lt;/tex&amp;gt; , что &amp;lt;tex&amp;gt; S_i &amp;lt;/tex&amp;gt; = &amp;lt;tex&amp;gt; S_j &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; T_i &amp;lt;/tex&amp;gt; = &amp;lt;tex&amp;gt; T_j&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;a_i &amp;lt; a_j&amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; a_j &amp;lt;/tex&amp;gt; можно добавить к НВП, заканчивающейся на &amp;lt;tex&amp;gt; a_i &amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;S_j \geqslant S_i + 1&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;a_i &amp;gt; a_j&amp;lt;/tex&amp;gt;, то по аналогии &amp;lt;tex&amp;gt;T_i \geqslant T_j + 1&amp;lt;/tex&amp;gt;. Противоречие! Следовательно все такие пары различны.&lt;br /&gt;
&lt;br /&gt;
Заметим что &amp;lt;tex&amp;gt;1 \leqslant S_i \leqslant l, 1 \leqslant T_i \leqslant k&amp;lt;/tex&amp;gt;, поэтому существуют &amp;lt;tex&amp;gt;l k&amp;lt;/tex&amp;gt; различных пар &amp;lt;tex&amp;gt; (S_i, T_i) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;l k &amp;lt; n&amp;lt;/tex&amp;gt; тогда среди &amp;lt;tex&amp;gt; n &amp;lt;/tex&amp;gt; пар найдутся две одинаковые. Такого быть не может по доказанному выше, т. е. &amp;lt;tex&amp;gt;l k \geqslant n&amp;lt;/tex&amp;gt;, ч. т. д.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Следствие из теоремы ==&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} длина последовательности, тогда длина наибольшей монотонной подпоследовательности не меньше &amp;lt;tex&amp;gt;\sqrt{n}&amp;lt;/tex&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;
== Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C#.D0.9D.D0.B5.D0.BA.D0.BE.D1.82.D0.BE.D1.80.D1.8B.D0.B5_.D0.B2.D0.B8.D0.B4.D1.8B_.D0.BF.D0.BE.D1.81.D0.BB.D0.B5.D0.B4.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE.D1.81.D1.82.D0.B5.D0.B9 Википедия {{---}} Последовательность]&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Longest_increasing_subsequence Wikipedia {{---}} Longest increasing subsequence]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Комбинаторика]]&lt;br /&gt;
[[Категория: Свойства комбинаторных объектов]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC%D0%B5/%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC%D0%B5_%D1%81%D0%BA%D0%B0%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=63000</id>
		<title>Задача о минимуме/максимуме скалярного произведения</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC%D0%B5/%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC%D0%B5_%D1%81%D0%BA%D0%B0%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=63000"/>
				<updated>2017-12-24T15:07:03Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Изменения в &amp;quot;см. также&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ &lt;br /&gt;
Задача &lt;br /&gt;
|definition=Необходимо найти минимальную/максимальную суммы попарных произведений для двух заданных упорядоченных наборов чисел. &lt;br /&gt;
}} &lt;br /&gt;
== Решение == &lt;br /&gt;
Скалярным произведением двух упорядоченных последовательностей чисел будем называть число &amp;lt;tex&amp;gt;S = x_1 y_1 + x_2 y_2 + \ldots + x_m y_m&amp;lt;/tex&amp;gt; &lt;br /&gt;
{{ &lt;br /&gt;
Теорема &lt;br /&gt;
|about=о минимуме/максимуме скалярного произведениях&amp;lt;ref name = &amp;quot;wiki&amp;quot; /&amp;gt; &lt;br /&gt;
|statement=Минимум скалярного произведения достигается при сопоставлении возрастающей последовательности &amp;lt;tex&amp;gt;x_1 \ldots x_m&amp;lt;/tex&amp;gt; и убывающей последовательности &amp;lt;tex&amp;gt;y_1 \ldots y_m&amp;lt;/tex&amp;gt;. При сопоставлении возрастающей &amp;lt;tex&amp;gt;y_1 \ldots y_m&amp;lt;/tex&amp;gt; достигается максимум. &lt;br /&gt;
&lt;br /&gt;
|proof= &lt;br /&gt;
Будем считать, что последовательность &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; отсортирована по возрастанию. Покажем, что если существуют пары чисел &amp;lt;tex&amp;gt;(x_i, y_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(x_j, y_j)&amp;lt;/tex&amp;gt;, такие что &amp;lt;tex&amp;gt;x_i &amp;lt; x_j&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_i &amp;lt; y_j&amp;lt;/tex&amp;gt;, то скалярное произведение можно уменьшить, поменяв местами &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_j&amp;lt;/tex&amp;gt;. Так как в нашем случае &amp;lt;tex&amp;gt;(x_j - x_i)(y_j - y_i) &amp;gt; 0&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;x_i y_i + x_j y_j &amp;gt; x_j y_i + x_i y_j&amp;lt;/tex&amp;gt;, а следовательно данное скалярное произведение не является минимальным. Проделав такую замену для всех &amp;lt;tex&amp;gt;y_i &amp;lt; y_j&amp;lt;/tex&amp;gt; получим отсортированную по убыванию последовательность &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt;, и скалярное произведение такой пары последовательностей будет минимальным. Аналогично для получения максимума во всех парах чисел &amp;lt;tex&amp;gt;(x_i, y_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(x_j, y_j)&amp;lt;/tex&amp;gt;, таких что &amp;lt;tex&amp;gt;x_i &amp;lt; x_j&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_i &amp;gt; y_j&amp;lt;/tex&amp;gt; нужно менять местами &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_j&amp;lt;/tex&amp;gt;. В результате получится отсортированная по возрастанию последовательность, и скалярное произведение  в таком случае будет максимальным.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Данная теорема нашла себе практическое применение в теории [[Теорема Радо-Эдмондса (жадный алгоритм)|матроидов]] и [[Flow shop| расписаний]].&lt;br /&gt;
&lt;br /&gt;
== Примечания == &lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name = &amp;quot;wiki&amp;quot;&amp;gt;[https://ru.wikipedia.org/wiki/Перестановочное_неравенство Википедия {{---}} Перестановочное неравенство]&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;
* Романовский И. В. Дискретный анализ. — 3-е изд. — С. 320 — ISBN 5-7940-0114-3. &lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]] &lt;br /&gt;
&lt;br /&gt;
[[Категория: Комбинаторика ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Свойства комбинаторных объектов]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<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=62999</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=62999"/>
				<updated>2017-12-24T15:03:11Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Отмена правки 62911 участника Haposiwe (обсуждение)&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 + \dots + m_k = n &amp;lt;/tex&amp;gt; так, что при всех &amp;lt;tex&amp;gt; i: 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;
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>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=62998</id>
		<title>ДНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=62998"/>
				<updated>2017-12-24T14:54:05Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Пофикшена СКНФ для медианы от 5 аргументов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой конъюнкцией''' (англ. ''inclusive conjunction'') или '''конъюнктом''' (англ. ''conjunct'') называется конъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая конъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt; раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Дизъюнктивная нормальная форма, ДНФ''' (англ. ''disjunctive normal form, DNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид дизъюнкции нескольких простых конъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример ДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land y) \lor (y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== СДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная дизъюнктивная нормальная форма, СДНФ''' (англ. ''perfect disjunctive normal form, PDNF'') — ДНФ, удовлетворяющая условиям:&lt;br /&gt;
* в ней нет одинаковых простых конъюнкций,&lt;br /&gt;
* каждая простая конъюнкция полная.&lt;br /&gt;
}}&lt;br /&gt;
Пример СДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec {x})&amp;lt;/tex&amp;gt;, не равной тождественному нулю, существует СДНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Для любой булевой функции выполняется следующее соотношение, называемое '''разложением Шеннона''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(\vec{x}) = \neg  x_i \wedge f(x_1, \ldots ,x_{i-1},0,x_{i+1}, \ldots ,x_n) \vee&lt;br /&gt;
x_i \wedge f(x_1, \ldots ,x_{i-1},1,x_{i+1}, \ldots ,x_n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Данное соотношение легко проверить подстановкой возможных значений &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;). Эта формула позволяет выносить &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; за знак функции. Последовательно вынося &amp;lt;tex&amp;gt;x_1&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;x_2&amp;lt;/tex&amp;gt;,.., &amp;lt;tex&amp;gt;x_n&amp;lt;/tex&amp;gt; за знак &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, получаем следующую формулу: &lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec{x}) = \neg  x_1 \wedge \neg  x_2 \wedge \ldots \wedge \neg  x_{n-1} \wedge \neg  x_n \wedge f(0,0,\ldots,0,0)~\vee~&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg  x_1 \wedge \neg  x_2 \wedge \ldots \wedge \neg  x_{n-1} \wedge x_n \wedge f(0,0,\ldots,0,1) ~\vee~ \\&lt;br /&gt;
\ldots \\&lt;br /&gt;
~\vee~ x_1 \wedge x_2 \wedge \ldots \wedge x_{n-1} \wedge \neg  x_n \wedge f(1,1,\ldots,1,0) ~\vee~\\ &lt;br /&gt;
x_1 \wedge x_2 \wedge \ldots \wedge x_{n-1} \wedge x_n \wedge f(1,1,\ldots,1) &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;2^n&amp;lt;/tex&amp;gt; конъюнктов. Каждый из них соответствует значению функции на одном из &amp;lt;tex&amp;gt;2^n&amp;lt;/tex&amp;gt; возможных наборов значений &amp;lt;tex&amp;gt; n &amp;lt;/tex&amp;gt; переменных. Если на некотором наборе &amp;lt;tex&amp;gt;f(\vec{x})=0&amp;lt;/tex&amp;gt;, то весь соответствующий конъюнкт также равен нулю и из представления данной функции его можно исключить. Если же &amp;lt;tex&amp;gt; f(\vec{x})=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;.&lt;br /&gt;
# Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
# Все полученные конъюнкции связываем операциями дизъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СДНФ для медианы==&lt;br /&gt;
=== Построение СДНФ для медианы от трех аргументов ===&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; y &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; y &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x} \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land \neg {y} \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x \land y \land \neg {z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные конъюнкции связываем операциями дизъюнкции:&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = (x \land y \land z) \lor (\neg {x} \land y \land z) \lor (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===  Построение СДНФ для медианы от пяти аргументов ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x_1 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_2 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_3 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;x_4&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_5 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle &amp;lt;/tex&amp;gt; ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 1 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land \neg {x_2} \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 0 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land \neg {x_4} \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (\overline {x_1} \land \overline {x_2} \land x_3 \land x_4 \land x_5) \lor (\overline {x_1} \land x_2 \land \overline {x_3} \land x_4 \land x_5) \lor (\overline {x_1} \land x_2 \land x_3 \land \overline {x_4} \land x_5) \lor (\overline {x_1} \land x_2 \land x_3 \land x_4 \land \overline {x_5}) \lor (\overline {x_1} \land x_2 \land x_3 \land x_4 \land x_5) \lor (x_1 \land \overline {x_2} \land \overline {x_3} \land x_4 \land x_5) \lor (x_1 \land \overline {x_2} \land x_3 \land \overline {x_4} \land x_5) \lor (x_1 \land \overline {x_2} \land x_3 \land x_4 \land \overline {x_5}) \lor (x_1 \land \overline {x_2} \land x_3 \land x_4 \land x_5) \lor (x_1 \land x_2 \land \overline {x_3} \land \overline {x_4} \land x_5) \lor (x_1 \land x_2 \land \overline {x_3} \land x_4 \land \overline {x_5}) \lor (x_1 \land x_2 \land \overline {x_3} \land x_4 \land x_5) \lor (x_1 \land x_2 \land x_3 \land \overline {x_4} \land \overline {x_5}) \lor (x_1 \land x_2 \land x_3 \land \overline {x_4} \land x_5) \lor (x_1 \land x_2 \land x_3 \land x_4 \land \overline {x_5}) \lor (x_1 \land x_2 \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Примеры СДНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg {x} \land \neg {y})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\overline{x} \land \overline{y} \land z) \lor (\overline{x} \land y \land \overline{z}) \lor (x \land \overline{y} \land \overline{z}) \lor (x \land y \land z)&amp;lt;/tex&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://ru.wikipedia.org/wiki/%D0%A1%D0%94%D0%9D%D0%A4 СДНФ — Википедия]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская — Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62997</id>
		<title>КНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62997"/>
				<updated>2017-12-24T14:50:10Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Исправлена СКНФ для медианы от 5 аргументов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== КНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой дизъюнкцией''' (англ. ''inclusive disjunction'') или '''дизъюнктом''' (англ. ''disjunct'') называется дизъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая дизъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно один раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Конъюнктивная нормальная форма, КНФ''' (англ. ''conjunctive normal form, CNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид конъюнкции нескольких простых дизъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример КНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor y) \land (y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== СКНФ == &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная конъюнктивная нормальная форма, СКНФ''' (англ. ''perfect conjunctive normal form, PCNF'') — это такая КНФ, которая удовлетворяет условиям:&lt;br /&gt;
* в ней нет одинаковых простых дизъюнкций&lt;br /&gt;
* каждая простая дизъюнкция полная&lt;br /&gt;
}}&lt;br /&gt;
Пример СКНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor \neg{y} \lor z) \land (x\lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, не равной тождественной единице, существует СКНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Поскольку инверсия функции &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; равна единице на тех наборах, на которых &amp;lt;tex&amp;gt;f(\vec x)&amp;lt;/tex&amp;gt; равна нулю, то СДНФ для &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; можно записать следующим образом:&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg{f}(\vec x) = \bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}}) &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt; \sigma_{i} &amp;lt;/tex&amp;gt; обозначает наличие или отсутствие отрицание при &amp;lt;tex&amp;gt; x_{i} &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Найдём инверсию левой и правой части выражения:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \neg ({\bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}})}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Применяя дважды к полученному в правой части выражению правило де Моргана, получаем:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \bigwedge\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (\neg{x_{1}^{\sigma_{1}}} \vee \neg{x_{2}^{\sigma_{2}}} \vee \ldots \vee \neg{x_{n}^{\sigma_{n}}} ) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последнее выражение и является СКНФ. Так как СКНФ получена из СДНФ, которая может быть посторена для любой функции, не равной тождественному нулю, то теорема доказана.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм построения СКНФ по таблице истинности ==&lt;br /&gt;
# В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Для каждого отмеченного набора записываем дизъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
# Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СКНФ для медианы==&lt;br /&gt;
=== Построение СКНФ для медианы от трех аргументов ===&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу : если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x \lor \neg{y} \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg{x} \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = ( x \lor y \lor z) \land (\neg{x} \lor y \lor z) \land (x \lor \neg{y} \lor z) \land ( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение СКНФ для медианы от пяти аргументов ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x_1 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_2 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_3 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;x_4&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_5 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle &amp;lt;/tex&amp;gt; ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 1 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor \neg {x_4} \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor \neg {x_2} \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 0 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (x_1 \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor x_4 \lor \overline {x_5}) \land \\ (x_1 \lor x_2 \lor x_3 \lor \overline {x_4} \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor \overline {x_4} \lor \overline {x_5}) \land (x_1 \lor x_2 \lor \overline {x_3} \lor x_4 \lor x_5) \land \\ (x_1 \lor x_2 \lor \overline {x_3} \lor x_4 \lor \overline {x_5}) \land (x_1 \lor x_2 \lor \overline {x_3} \lor \overline {x_4} \lor x_5) \land (x_1 \lor \overline {x_2} \lor x_3 \lor x_4 \lor x_5) \land \\ (x_1 \lor \overline {x_2} \lor x_3 \lor x_4 \lor \overline {x_5}) \land (x_1 \lor \overline {x_2} \lor x_3 \lor \overline {x_4} \lor x_5) \land (x_1 \lor \overline {x_2} \lor \overline {x_3} \lor x_4 \lor x_5) \land (\overline {x_1} \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land (\overline {x_1} \lor x_2 \lor x_3 \lor x_4 \lor \overline {x_5}) \land (\overline {x_1} \lor x_2 \lor x_3 \lor \overline {x_4} \lor x_5) \land (\overline {x_1} \lor x_2 \lor \overline {x_3} \lor x_4 \lor x_5) \land (\overline {x_1} \lor \overline {x_2} \lor x_3 \lor x_4 \lor x_5) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Примеры СКНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg{x} \lor {y}) \land ({x} \lor \neg {y}) \land (\neg {x} \lor \neg {y}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\neg {x} \lor \neg {y} \lor z) \land (\neg {x} \lor y \lor \neg {z}) \land (x \lor \neg {y} \lor \neg {z}) \land (x \lor y \lor z)&amp;lt;/tex&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://ru.wikipedia.org/wiki/%D0%A1%D0%9A%D0%9D%D0%A4 Википедия {{---}} СКНФ]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская {{---}} Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62941</id>
		<title>КНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62941"/>
				<updated>2017-12-23T20:13:30Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: giuytngfldld&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== КНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой дизъюнкцией''' (англ. ''inclusive disjunction'') или '''дизъюнктом''' (англ. ''disjunct'') называется дизъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая дизъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно один раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Конъюнктивная нормальная форма, КНФ''' (англ. ''conjunctive normal form, CNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид конъюнкции нескольких простых дизъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример КНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor y) \land (y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== СКНФ == &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная конъюнктивная нормальная форма, СКНФ''' (англ. ''perfect conjunctive normal form, PCNF'') — это такая КНФ, которая удовлетворяет условиям:&lt;br /&gt;
* в ней нет одинаковых простых дизъюнкций&lt;br /&gt;
* каждая простая дизъюнкция полная&lt;br /&gt;
}}&lt;br /&gt;
Пример СКНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor \neg{y} \lor z) \land (x\lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, не равной тождественной единице, существует СКНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Поскольку инверсия функции &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; равна единице на тех наборах, на которых &amp;lt;tex&amp;gt;f(\vec x)&amp;lt;/tex&amp;gt; равна нулю, то СДНФ для &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; можно записать следующим образом:&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg{f}(\vec x) = \bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}}) &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt; \sigma_{i} &amp;lt;/tex&amp;gt; обозначает наличие или отсутствие отрицание при &amp;lt;tex&amp;gt; x_{i} &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Найдём инверсию левой и правой части выражения:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \neg ({\bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}})}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Применяя дважды к полученному в правой части выражению правило де Моргана, получаем:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \bigwedge\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (\neg{x_{1}^{\sigma_{1}}} \vee \neg{x_{2}^{\sigma_{2}}} \vee \ldots \vee \neg{x_{n}^{\sigma_{n}}} ) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последнее выражение и является СКНФ. Так как СКНФ получена из СДНФ, которая может быть посторена для любой функции, не равной тождественному нулю, то теорема доказана.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм построения СКНФ по таблице истинности ==&lt;br /&gt;
# В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Для каждого отмеченного набора записываем дизъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
# Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СКНФ для медианы==&lt;br /&gt;
=== Построение СКНФ для медианы от трех аргументов ===&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу : если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x \lor \neg{y} \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg{x} \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = ( x \lor y \lor z) \land (\neg{x} \lor y \lor z) \land (x \lor \neg{y} \lor z) \land ( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение СКНФ для медианы от пяти аргументов ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x_1 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_2 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_3 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;x_4&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_5 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle &amp;lt;/tex&amp;gt; ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 1 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor \neg {x_4} \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor \neg {x_2} \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 0 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (x_1 \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land (\overline{x_1} \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land \\ (x_1 \lor \overline{x_2} \lor x_3 \lor x_4 \lor x_5) \land (\overline{x_1} \lor \overline{x_2} \lor x_3 \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor \overline{x_3} \lor x_4 \lor x_5) \land \\ (\overline{x_1} \lor x_2 \lor \overline{x_3} \lor x_4 \lor x_5) \land (x_1 \lor \overline{x_2} \lor \overline{x_3} \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor \overline{x_4} \lor x_5) \land \\ (\overline{x_1} \lor x_2 \lor x_3 \lor \overline{x_4} \lor x_5) \land (x_1 \lor \overline{x_2} \lor x_3 \lor \overline{x_4} \lor x_5) \land (x_1 \lor x_2 \lor \overline{x_3} \lor \overline{x_4} \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor x_4 \lor \overline{x_5}) \land (\overline{x_1} \lor x_2 \lor x_3 \lor x_4 \lor \overline{x_5}) \land (x_1 \lor \overline{x_2} \lor x_3 \lor x_4 \lor \overline{x_5}) \land (x_1 \lor x_2 \lor \overline{x_3} \lor x_4 \lor \overline{x_5}) \land (x_1 \lor x_2 \lor x_3 \lor \overline{x_4} \lor \overline{x_5}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Примеры СКНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg{x} \lor {y}) \land ({x} \lor \neg {y}) \land (\neg {x} \lor \neg {y}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\neg {x} \lor \neg {y} \lor z) \land (\neg {x} \lor y \lor \neg {z}) \land (x \lor \neg {y} \lor \neg {z}) \land (x \lor y \lor z)&amp;lt;/tex&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://ru.wikipedia.org/wiki/%D0%A1%D0%9A%D0%9D%D0%A4 Википедия {{---}} СКНФ]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская {{---}} Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=62939</id>
		<title>ДНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=62939"/>
				<updated>2017-12-23T20:07:21Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Добавлены разделы для медианы от трех и пяти аргументов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой конъюнкцией''' (англ. ''inclusive conjunction'') или '''конъюнктом''' (англ. ''conjunct'') называется конъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая конъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt; раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Дизъюнктивная нормальная форма, ДНФ''' (англ. ''disjunctive normal form, DNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид дизъюнкции нескольких простых конъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример ДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land y) \lor (y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== СДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная дизъюнктивная нормальная форма, СДНФ''' (англ. ''perfect disjunctive normal form, PDNF'') — ДНФ, удовлетворяющая условиям:&lt;br /&gt;
* в ней нет одинаковых простых конъюнкций,&lt;br /&gt;
* каждая простая конъюнкция полная.&lt;br /&gt;
}}&lt;br /&gt;
Пример СДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec {x})&amp;lt;/tex&amp;gt;, не равной тождественному нулю, существует СДНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Для любой булевой функции выполняется следующее соотношение, называемое '''разложением Шеннона''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(\vec{x}) = \neg  x_i \wedge f(x_1, \ldots ,x_{i-1},0,x_{i+1}, \ldots ,x_n) \vee&lt;br /&gt;
x_i \wedge f(x_1, \ldots ,x_{i-1},1,x_{i+1}, \ldots ,x_n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Данное соотношение легко проверить подстановкой возможных значений &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;). Эта формула позволяет выносить &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; за знак функции. Последовательно вынося &amp;lt;tex&amp;gt;x_1&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;x_2&amp;lt;/tex&amp;gt;,.., &amp;lt;tex&amp;gt;x_n&amp;lt;/tex&amp;gt; за знак &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, получаем следующую формулу: &lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec{x}) = \neg  x_1 \wedge \neg  x_2 \wedge \ldots \wedge \neg  x_{n-1} \wedge \neg  x_n \wedge f(0,0,\ldots,0,0)~\vee~&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg  x_1 \wedge \neg  x_2 \wedge \ldots \wedge \neg  x_{n-1} \wedge x_n \wedge f(0,0,\ldots,0,1) ~\vee~ \\&lt;br /&gt;
\ldots \\&lt;br /&gt;
~\vee~ x_1 \wedge x_2 \wedge \ldots \wedge x_{n-1} \wedge \neg  x_n \wedge f(1,1,\ldots,1,0) ~\vee~\\ &lt;br /&gt;
x_1 \wedge x_2 \wedge \ldots \wedge x_{n-1} \wedge x_n \wedge f(1,1,\ldots,1) &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;2^n&amp;lt;/tex&amp;gt; конъюнктов. Каждый из них соответствует значению функции на одном из &amp;lt;tex&amp;gt;2^n&amp;lt;/tex&amp;gt; возможных наборов значений &amp;lt;tex&amp;gt; n &amp;lt;/tex&amp;gt; переменных. Если на некотором наборе &amp;lt;tex&amp;gt;f(\vec{x})=0&amp;lt;/tex&amp;gt;, то весь соответствующий конъюнкт также равен нулю и из представления данной функции его можно исключить. Если же &amp;lt;tex&amp;gt; f(\vec{x})=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;.&lt;br /&gt;
# Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
# Все полученные конъюнкции связываем операциями дизъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СДНФ для медианы==&lt;br /&gt;
=== Построение СДНФ для медианы от трех аргументов ===&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; y &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; y &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x} \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land \neg {y} \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x \land y \land \neg {z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные конъюнкции связываем операциями дизъюнкции:&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = (x \land y \land z) \lor (\neg {x} \land y \land z) \lor (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===  Построение СДНФ для медианы от пяти аргументов ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x_1 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_2 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_3 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;x_4&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_5 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle &amp;lt;/tex&amp;gt; ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 1 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land \neg {x_2} \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 0 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land \neg {x_4} \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (x_1 \land x_2 \land x_3 \land \overline{x_4} \land \overline{x_5}) \lor (x_1 \land x_2 \land \overline{x_3} \land x_4 \land \overline{x_5}) \lor \\ (x_1 \land \overline{x_2} \land x_3 \land x_4 \land \overline{x_5}) \lor (\overline{x_1} \land x_2 \land x_3 \land x_4 \land \overline{x_5}) \lor (x_1 \land x_2 \land x_3 \land x_4 \land \overline{x_5}) \lor \\ (x_1 \land x_2 \land \overline{x_3} \land \overline{x_4} \land x_5) \lor (x_1 \land \overline{x_2} \land x_3 \land \overline{x_4} \land x_5) \lor (\overline{x_1} \land x_2 \land x_3 \land \overline{x_4} \land x_5) \lor \\ (x_1 \land x_2 \land x_3 \land \overline{x_4} \land x_5) \lor (x_1 \land \overline{x_2} \land \overline{x_3} \land x_4 \land x_5) \lor (\overline{x_1} \land x_2 \land \overline{x_3} \land x_4 \land x_5) \lor (x_1 \land x_2 \land \overline{x_3} \land x_4 \land x_5) \lor (\overline{x_1} \land \overline{x_2} \land x_3 \land x_4 \land x_5) \lor (x_1 \land \overline{x_2} \land x_3 \land x_4 \land x_5) \lor (\overline{x_1} \land x_2 \land x_3 \land x_4 \land x_5) \lor (x_1 \land x_2 \land x_3 \land x_4 \land x_5) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Примеры СДНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg {x} \land \neg {y})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\overline{x} \land \overline{y} \land z) \lor (\overline{x} \land y \land \overline{z}) \lor (x \land \overline{y} \land \overline{z}) \lor (x \land y \land z)&amp;lt;/tex&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://ru.wikipedia.org/wiki/%D0%A1%D0%94%D0%9D%D0%A4 СДНФ — Википедия]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская — Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62924</id>
		<title>КНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62924"/>
				<updated>2017-12-23T19:07:24Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Добавлена таблица истинность для медианы от 5 аргументов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== КНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой дизъюнкцией''' (англ. ''inclusive disjunction'') или '''дизъюнктом''' (англ. ''disjunct'') называется дизъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая дизъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно один раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Конъюнктивная нормальная форма, КНФ''' (англ. ''conjunctive normal form, CNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид конъюнкции нескольких простых дизъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример КНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor y) \land (y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== СКНФ == &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная конъюнктивная нормальная форма, СКНФ''' (англ. ''perfect conjunctive normal form, PCNF'') — это такая КНФ, которая удовлетворяет условиям:&lt;br /&gt;
* в ней нет одинаковых простых дизъюнкций&lt;br /&gt;
* каждая простая дизъюнкция полная&lt;br /&gt;
}}&lt;br /&gt;
Пример СКНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor \neg{y} \lor z) \land (x\lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, не равной тождественной единице, существует СКНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Поскольку инверсия функции &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; равна единице на тех наборах, на которых &amp;lt;tex&amp;gt;f(\vec x)&amp;lt;/tex&amp;gt; равна нулю, то СДНФ для &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; можно записать следующим образом:&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg{f}(\vec x) = \bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}}) &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt; \sigma_{i} &amp;lt;/tex&amp;gt; обозначает наличие или отсутствие отрицание при &amp;lt;tex&amp;gt; x_{i} &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Найдём инверсию левой и правой части выражения:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \neg ({\bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}})}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Применяя дважды к полученному в правой части выражению правило де Моргана, получаем:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \bigwedge\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (\neg{x_{1}^{\sigma_{1}}} \vee \neg{x_{2}^{\sigma_{2}}} \vee \ldots \vee \neg{x_{n}^{\sigma_{n}}} ) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последнее выражение и является СКНФ. Так как СКНФ получена из СДНФ, которая может быть посторена для любой функции, не равной тождественному нулю, то теорема доказана.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм построения СКНФ по таблице истинности ==&lt;br /&gt;
# В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Для каждого отмеченного набора записываем дизъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
# Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СКНФ для медианы==&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу : если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x \lor \neg{y} \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg{x} \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = ( x \lor y \lor z) \land (\neg{x} \lor y \lor z) \land (x \lor \neg{y} \lor z) \land ( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Примеры СКНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg{x} \lor {y}) \land ({x} \lor \neg {y}) \land (\neg {x} \lor \neg {y}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\neg {x} \lor \neg {y} \lor z) \land (\neg {x} \lor y \lor \neg {z}) \land (x \lor \neg {y} \lor \neg {z}) \land (x \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Медиана 5 аргументов:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x_1 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_2 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_3 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;x_4&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_5 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle &amp;lt;/tex&amp;gt; ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 0 || 1 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor x_3 \lor \neg {x_4} \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor x_2 \lor \neg {x_3} \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(x_1 \lor \neg {x_2} \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor x_4 \lor \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor x_3 \lor \neg {x_4} \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor x_2 \lor \neg {x_3} \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg {x_1} \lor \neg {x_2} \lor x_3 \lor x_4 \lor x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 0 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || 0 || 1 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || 1 || 1 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (x_1 \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land (\overline{x_1} \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land \\ (x_1 \lor \overline{x_2} \lor x_3 \lor x_4 \lor x_5) \land (\overline{x_1} \lor \overline{x_2} \lor x_3 \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor \overline{x_3} \lor x_4 \lor x_5) \land \\ (\overline{x_1} \lor x_2 \lor \overline{x_3} \lor x_4 \lor x_5) \land (x_1 \lor \overline{x_2} \lor \overline{x_3} \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor \overline{x_4} \lor x_5) \land \\ (\overline{x_1} \lor x_2 \lor x_3 \lor \overline{x_4} \lor x_5) \land (x_1 \lor \overline{x_2} \lor x_3 \lor \overline{x_4} \lor x_5) \land (x_1 \lor x_2 \lor \overline{x_3} \lor \overline{x_4} \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor x_4 \lor \overline{x_5}) \land (\overline{x_1} \lor x_2 \lor x_3 \lor x_4 \lor \overline{x_5}) \land (x_1 \lor \overline{x_2} \lor x_3 \lor x_4 \lor \overline{x_5}) \land (x_1 \lor x_2 \lor \overline{x_3} \lor x_4 \lor \overline{x_5}) \land (x_1 \lor x_2 \lor x_3 \lor \overline{x_4} \lor \overline{x_5}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
* [[Специальные формы КНФ]]&lt;br /&gt;
* [[ДНФ]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%A1%D0%9A%D0%9D%D0%A4 Википедия {{---}} СКНФ]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская {{---}} Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62922</id>
		<title>КНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62922"/>
				<updated>2017-12-23T19:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Добавлено &amp;quot;см. также&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== КНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой дизъюнкцией''' (англ. ''inclusive disjunction'') или '''дизъюнктом''' (англ. ''disjunct'') называется дизъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая дизъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно один раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Конъюнктивная нормальная форма, КНФ''' (англ. ''conjunctive normal form, CNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид конъюнкции нескольких простых дизъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример КНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor y) \land (y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== СКНФ == &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная конъюнктивная нормальная форма, СКНФ''' (англ. ''perfect conjunctive normal form, PCNF'') — это такая КНФ, которая удовлетворяет условиям:&lt;br /&gt;
* в ней нет одинаковых простых дизъюнкций&lt;br /&gt;
* каждая простая дизъюнкция полная&lt;br /&gt;
}}&lt;br /&gt;
Пример СКНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor \neg{y} \lor z) \land (x\lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, не равной тождественной единице, существует СКНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Поскольку инверсия функции &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; равна единице на тех наборах, на которых &amp;lt;tex&amp;gt;f(\vec x)&amp;lt;/tex&amp;gt; равна нулю, то СДНФ для &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; можно записать следующим образом:&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg{f}(\vec x) = \bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}}) &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt; \sigma_{i} &amp;lt;/tex&amp;gt; обозначает наличие или отсутствие отрицание при &amp;lt;tex&amp;gt; x_{i} &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Найдём инверсию левой и правой части выражения:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \neg ({\bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}})}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Применяя дважды к полученному в правой части выражению правило де Моргана, получаем:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \bigwedge\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (\neg{x_{1}^{\sigma_{1}}} \vee \neg{x_{2}^{\sigma_{2}}} \vee \ldots \vee \neg{x_{n}^{\sigma_{n}}} ) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последнее выражение и является СКНФ. Так как СКНФ получена из СДНФ, которая может быть посторена для любой функции, не равной тождественному нулю, то теорема доказана.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм построения СКНФ по таблице истинности ==&lt;br /&gt;
# В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Для каждого отмеченного набора записываем дизъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
# Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СКНФ для медианы==&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу : если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x \lor \neg{y} \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg{x} \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = ( x \lor y \lor z) \land (\neg{x} \lor y \lor z) \land (x \lor \neg{y} \lor z) \land ( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Примеры СКНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg{x} \lor {y}) \land ({x} \lor \neg {y}) \land (\neg {x} \lor \neg {y}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\neg {x} \lor \neg {y} \lor z) \land (\neg {x} \lor y \lor \neg {z}) \land (x \lor \neg {y} \lor \neg {z}) \land (x \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Медиана 5 аргументов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (x_1 \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land (\overline{x_1} \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land \\ (x_1 \lor \overline{x_2} \lor x_3 \lor x_4 \lor x_5) \land (\overline{x_1} \lor \overline{x_2} \lor x_3 \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor \overline{x_3} \lor x_4 \lor x_5) \land \\ (\overline{x_1} \lor x_2 \lor \overline{x_3} \lor x_4 \lor x_5) \land (x_1 \lor \overline{x_2} \lor \overline{x_3} \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor \overline{x_4} \lor x_5) \land \\ (\overline{x_1} \lor x_2 \lor x_3 \lor \overline{x_4} \lor x_5) \land (x_1 \lor \overline{x_2} \lor x_3 \lor \overline{x_4} \lor x_5) \land (x_1 \lor x_2 \lor \overline{x_3} \lor \overline{x_4} \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor x_4 \lor \overline{x_5}) \land (\overline{x_1} \lor x_2 \lor x_3 \lor x_4 \lor \overline{x_5}) \land (x_1 \lor \overline{x_2} \lor x_3 \lor x_4 \lor \overline{x_5}) \land (x_1 \lor x_2 \lor \overline{x_3} \lor x_4 \lor \overline{x_5}) \land (x_1 \lor x_2 \lor x_3 \lor \overline{x_4} \lor \overline{x_5}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
* [[Специальные формы КНФ]]&lt;br /&gt;
* [[ДНФ]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%A1%D0%9A%D0%9D%D0%A4 Википедия {{---}} СКНФ]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская {{---}} Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=62921</id>
		<title>ДНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=62921"/>
				<updated>2017-12-23T18:57:45Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Добавлена таблица истинности для медианы от 5 аргументов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой конъюнкцией''' (англ. ''inclusive conjunction'') или '''конъюнктом''' (англ. ''conjunct'') называется конъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая конъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt; раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Дизъюнктивная нормальная форма, ДНФ''' (англ. ''disjunctive normal form, DNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид дизъюнкции нескольких простых конъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример ДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land y) \lor (y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== СДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная дизъюнктивная нормальная форма, СДНФ''' (англ. ''perfect disjunctive normal form, PDNF'') — ДНФ, удовлетворяющая условиям:&lt;br /&gt;
* в ней нет одинаковых простых конъюнкций,&lt;br /&gt;
* каждая простая конъюнкция полная.&lt;br /&gt;
}}&lt;br /&gt;
Пример СДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec {x})&amp;lt;/tex&amp;gt;, не равной тождественному нулю, существует СДНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Для любой булевой функции выполняется следующее соотношение, называемое '''разложением Шеннона''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(\vec{x}) = \neg  x_i \wedge f(x_1, \ldots ,x_{i-1},0,x_{i+1}, \ldots ,x_n) \vee&lt;br /&gt;
x_i \wedge f(x_1, \ldots ,x_{i-1},1,x_{i+1}, \ldots ,x_n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Данное соотношение легко проверить подстановкой возможных значений &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;). Эта формула позволяет выносить &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; за знак функции. Последовательно вынося &amp;lt;tex&amp;gt;x_1&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;x_2&amp;lt;/tex&amp;gt;,.., &amp;lt;tex&amp;gt;x_n&amp;lt;/tex&amp;gt; за знак &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, получаем следующую формулу: &lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec{x}) = \neg  x_1 \wedge \neg  x_2 \wedge \ldots \wedge \neg  x_{n-1} \wedge \neg  x_n \wedge f(0,0,\ldots,0,0)~\vee~&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg  x_1 \wedge \neg  x_2 \wedge \ldots \wedge \neg  x_{n-1} \wedge x_n \wedge f(0,0,\ldots,0,1) ~\vee~ \\&lt;br /&gt;
\ldots \\&lt;br /&gt;
~\vee~ x_1 \wedge x_2 \wedge \ldots \wedge x_{n-1} \wedge \neg  x_n \wedge f(1,1,\ldots,1,0) ~\vee~\\ &lt;br /&gt;
x_1 \wedge x_2 \wedge \ldots \wedge x_{n-1} \wedge x_n \wedge f(1,1,\ldots,1) &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;2^n&amp;lt;/tex&amp;gt; конъюнктов. Каждый из них соответствует значению функции на одном из &amp;lt;tex&amp;gt;2^n&amp;lt;/tex&amp;gt; возможных наборов значений &amp;lt;tex&amp;gt; n &amp;lt;/tex&amp;gt; переменных. Если на некотором наборе &amp;lt;tex&amp;gt;f(\vec{x})=0&amp;lt;/tex&amp;gt;, то весь соответствующий конъюнкт также равен нулю и из представления данной функции его можно исключить. Если же &amp;lt;tex&amp;gt; f(\vec{x})=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;.&lt;br /&gt;
# Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
# Все полученные конъюнкции связываем операциями дизъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СДНФ для медианы==&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; y &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; y &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x} \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land \neg {y} \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x \land y \land \neg {z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные конъюнкции связываем операциями дизъюнкции:&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = (x \land y \land z) \lor (\neg {x} \land y \land z) \lor (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Примеры СДНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg {x} \land \neg {y})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\overline{x} \land \overline{y} \land z) \lor (\overline{x} \land y \land \overline{z}) \lor (x \land \overline{y} \land \overline{z}) \lor (x \land y \land z)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Медиана 5 аргументов:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x_1 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_2 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_3 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;x_4&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; x_5 &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle &amp;lt;/tex&amp;gt; ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 1 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 0 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land \neg {x_2} \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x_1} \land x_2 \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land \neg {x_2} \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 1 || 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land \neg {x_3} \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 0 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land \neg {x_4} \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land \neg {x_4} \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land x_4 \land \neg {x_5})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x_1 \land x_2 \land x_3 \land x_4 \land x_5)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (x_1 \land x_2 \land x_3 \land \overline{x_4} \land \overline{x_5}) \lor (x_1 \land x_2 \land \overline{x_3} \land x_4 \land \overline{x_5}) \lor \\ (x_1 \land \overline{x_2} \land x_3 \land x_4 \land \overline{x_5}) \lor (\overline{x_1} \land x_2 \land x_3 \land x_4 \land \overline{x_5}) \lor (x_1 \land x_2 \land x_3 \land x_4 \land \overline{x_5}) \lor \\ (x_1 \land x_2 \land \overline{x_3} \land \overline{x_4} \land x_5) \lor (x_1 \land \overline{x_2} \land x_3 \land \overline{x_4} \land x_5) \lor (\overline{x_1} \land x_2 \land x_3 \land \overline{x_4} \land x_5) \lor \\ (x_1 \land x_2 \land x_3 \land \overline{x_4} \land x_5) \lor (x_1 \land \overline{x_2} \land \overline{x_3} \land x_4 \land x_5) \lor (\overline{x_1} \land x_2 \land \overline{x_3} \land x_4 \land x_5) \lor (x_1 \land x_2 \land \overline{x_3} \land x_4 \land x_5) \lor (\overline{x_1} \land \overline{x_2} \land x_3 \land x_4 \land x_5) \lor (x_1 \land \overline{x_2} \land x_3 \land x_4 \land x_5) \lor (\overline{x_1} \land x_2 \land x_3 \land x_4 \land x_5) \lor (x_1 \land x_2 \land x_3 \land x_4 \land x_5) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
* [[Сокращенная и минимальная ДНФ]]&lt;br /&gt;
* [[КНФ]]&lt;br /&gt;
&lt;br /&gt;
==Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%A1%D0%94%D0%9D%D0%A4 СДНФ — Википедия]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская — Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC%D0%B5/%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC%D0%B5_%D1%81%D0%BA%D0%B0%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=62920</id>
		<title>Задача о минимуме/максимуме скалярного произведения</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC%D0%B5/%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC%D0%B5_%D1%81%D0%BA%D0%B0%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=62920"/>
				<updated>2017-12-23T17:53:35Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Добавлены\изменены \ldots. Пофикшена ссылка&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ &lt;br /&gt;
Задача &lt;br /&gt;
|definition=Необходимо найти минимальную/максимальную суммы попарных произведений для двух заданных упорядоченных наборов чисел. &lt;br /&gt;
}} &lt;br /&gt;
== Решение == &lt;br /&gt;
Скалярным произведением двух упорядоченных последовательностей чисел будем называть число &amp;lt;tex&amp;gt;S = x_1 y_1 + x_2 y_2 + \ldots + x_m y_m&amp;lt;/tex&amp;gt; &lt;br /&gt;
{{ &lt;br /&gt;
Теорема &lt;br /&gt;
|about=о минимуме/максимуме скалярного произведениях&amp;lt;ref name = &amp;quot;wiki&amp;quot; /&amp;gt; &lt;br /&gt;
|statement=Минимум скалярного произведения достигается при сопоставлении возрастающей последовательности &amp;lt;tex&amp;gt;x_1 \ldots x_m&amp;lt;/tex&amp;gt; и убывающей последовательности &amp;lt;tex&amp;gt;y_1 \ldots y_m&amp;lt;/tex&amp;gt;. При сопоставлении возрастающей &amp;lt;tex&amp;gt;y_1 \ldots y_m&amp;lt;/tex&amp;gt; достигается максимум. &lt;br /&gt;
&lt;br /&gt;
|proof= &lt;br /&gt;
Будем считать, что последовательность &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; отсортирована по возрастанию. Покажем, что если существуют пары чисел &amp;lt;tex&amp;gt;(x_i, y_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(x_j, y_j)&amp;lt;/tex&amp;gt;, такие что &amp;lt;tex&amp;gt;x_i &amp;lt; x_j&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_i &amp;lt; y_j&amp;lt;/tex&amp;gt;, то скалярное произведение можно уменьшить, поменяв местами &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_j&amp;lt;/tex&amp;gt;. Так как в нашем случае &amp;lt;tex&amp;gt;(x_j - x_i)(y_j - y_i) &amp;gt; 0&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;x_i y_i + x_j y_j &amp;gt; x_j y_i + x_i y_j&amp;lt;/tex&amp;gt;, а следовательно данное скалярное произведение не является минимальным. Проделав такую замену для всех &amp;lt;tex&amp;gt;y_i &amp;lt; y_j&amp;lt;/tex&amp;gt; получим отсортированную по убыванию последовательность &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt;, и скалярное произведение такой пары последовательностей будет минимальным. Аналогично для получения максимума во всех парах чисел &amp;lt;tex&amp;gt;(x_i, y_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(x_j, y_j)&amp;lt;/tex&amp;gt;, таких что &amp;lt;tex&amp;gt;x_i &amp;lt; x_j&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_i &amp;gt; y_j&amp;lt;/tex&amp;gt; нужно менять местами &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_j&amp;lt;/tex&amp;gt;. В результате получится отсортированная по возрастанию последовательность, и скалярное произведение  в таком случае будет максимальным.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Данная теорема нашла себе практическое применение в теории [[Теорема Радо-Эдмондса (жадный алгоритм)|матроидов]] и [[Flow shop| расписаний]].&lt;br /&gt;
&lt;br /&gt;
== Примечания == &lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name = &amp;quot;wiki&amp;quot;&amp;gt;[https://ru.wikipedia.org/wiki/Перестановочное_неравенство Википедия {{---}} Перестановочное неравенство]&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;
== Источники информации == &lt;br /&gt;
* Романовский И. В. Дискретный анализ. — 3-е изд. — С. 320 — ISBN 5-7940-0114-3. &lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]] &lt;br /&gt;
&lt;br /&gt;
[[Категория: Комбинаторика ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Свойства комбинаторных объектов]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<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=62915</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=62915"/>
				<updated>2017-12-23T17:09:08Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Добавлено &amp;quot;см. также&amp;quot;&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 + \dots + m_k = n &amp;lt;/tex&amp;gt; так, что при всех &amp;lt;tex&amp;gt; i: m_i \leqslant m_{i+1} &amp;lt;/tex&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Алгоритм за &amp;lt;tex&amp;gt;O(N^3)&amp;lt;/tex&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;
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;
== Алгоритм за &amp;lt;tex&amp;gt;O(N^2)&amp;lt;/tex&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;
== Алгоритм за &amp;lt;tex&amp;gt;O(N^{3/2})&amp;lt;/tex&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>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%BE%D0%BD%D0%BE%D1%82%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%B4%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8F%D1%85,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D1%81%D0%B2%D1%8F%D0%B7%D0%B8_%D0%B4%D0%BB%D0%B8%D0%BD%D1%8B_%D0%9D%D0%92%D0%9F_%D0%B8_%D0%9D%D0%A3%D0%9F&amp;diff=62914</id>
		<title>Задача о монотонных подпоследовательностях, теорема о связи длины НВП и НУП</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%BE%D0%BD%D0%BE%D1%82%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%B4%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8F%D1%85,_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D1%81%D0%B2%D1%8F%D0%B7%D0%B8_%D0%B4%D0%BB%D0%B8%D0%BD%D1%8B_%D0%9D%D0%92%D0%9F_%D0%B8_%D0%9D%D0%A3%D0%9F&amp;diff=62914"/>
				<updated>2017-12-23T17:05:10Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Добавлено &amp;quot;см. также&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Последовательность''' (англ. ''sequence'') {{---}} это набор элементов некоторого множества пронумерованный натуральными числами. Последовательность является результатом последовательного выбора элементов множества. При этом элементы последовательности могут повторяться. В частности, последовательность не является подмножеством заданного множества.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Виды последовательностей ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''''неубывающей''''' (англ. ''nondecreasing''), если каждый элемент этой последовательности не превосходит следующего за ним. &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; &amp;amp;mdash; '''''неубывающая''''' &amp;lt;tex&amp;gt;\Leftrightarrow\forall n \in \mathbb N: x_n \leqslant x_{n+1}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''''невозрастающей''''' (англ. ''nonincreasing''), если каждый следующий элемент этой последовательности не превосходит предыдущего. &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; &amp;amp;mdash; '''''невозрастающая''''' &amp;lt;tex&amp;gt;\Leftrightarrow\forall n \in \mathbb N: x_n \geqslant x_{n+1}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''''возрастающей''''' (англ. ''increasing''), если каждый следующий элемент этой последовательности превышает предыдущий. &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; &amp;amp;mdash; '''''возрастающая''''' &amp;lt;tex&amp;gt;\Leftrightarrow\forall n \in \mathbb N: x_n &amp;lt; x_{n+1}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''''убывающей''''' (англ. ''decreasing''), если каждый элемент этой последовательности превышает следующий за ним. &amp;lt;tex&amp;gt;\{x_n\}&amp;lt;/tex&amp;gt; &amp;amp;mdash; '''''убывающая''''' &amp;lt;tex&amp;gt;\Leftrightarrow\forall n \in \mathbb N: x_n &amp;gt; x_{n+1}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность называется '''монотонной''' (англ. ''monotonic''), если она является неубывающей, либо невозрастающей.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
Последовательность называется '''строго монотонной''' (англ. ''strictly monotonic''), если она является возрастающей, либо убывающей.&lt;br /&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;
|author=&lt;br /&gt;
|about=&lt;br /&gt;
|statement=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; {{---}} перестановка чисел длины &amp;lt;tex&amp;gt;n, l&amp;lt;/tex&amp;gt; {{---}} длина наибольшей возрастающей подпоследовательности ([[Задача о наибольшей возрастающей подпоследовательности|НВП]]), &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; {{---}} длина наибольшей убывающей подпоследовательности (НУП). Тогда &amp;lt;tex&amp;gt;l k \geqslant n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим два массива длины &amp;lt;tex&amp;gt;n : S &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; T &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt; S_i &amp;lt;/tex&amp;gt; {{---}} длина НВП, которая заканчивается на &amp;lt;tex&amp;gt;a_i&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; T_i &amp;lt;/tex&amp;gt; {{---}} длина НУП, которая начинается на &amp;lt;tex&amp;gt;a_i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Докажем, что все пары &amp;lt;tex&amp;gt;(S_i, T_i)&amp;lt;/tex&amp;gt; различны.&lt;br /&gt;
Пусть существуют такие &amp;lt;tex&amp;gt;i &amp;lt; j&amp;lt;/tex&amp;gt; , что &amp;lt;tex&amp;gt; S_i &amp;lt;/tex&amp;gt; = &amp;lt;tex&amp;gt; S_j &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; T_i &amp;lt;/tex&amp;gt; = &amp;lt;tex&amp;gt; T_j&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;a_i &amp;lt; a_j&amp;lt;/tex&amp;gt;, тогда &amp;lt;tex&amp;gt; a_j &amp;lt;/tex&amp;gt; можно добавить к НВП, заканчивающейся на &amp;lt;tex&amp;gt; a_i &amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;S_j \geqslant S_i + 1&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;a_i &amp;gt; a_j&amp;lt;/tex&amp;gt;, то по аналогии &amp;lt;tex&amp;gt;T_i \geqslant T_j + 1&amp;lt;/tex&amp;gt;. Противоречие! Следовательно все такие пары различны.&lt;br /&gt;
&lt;br /&gt;
Заметим что &amp;lt;tex&amp;gt;1 \leqslant S_i \leqslant l, 1 \leqslant T_i \leqslant k&amp;lt;/tex&amp;gt;, поэтому существуют &amp;lt;tex&amp;gt;l k&amp;lt;/tex&amp;gt; различных пар &amp;lt;tex&amp;gt; (S_i, T_i) &amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;l k &amp;lt; n&amp;lt;/tex&amp;gt; тогда среди &amp;lt;tex&amp;gt; n &amp;lt;/tex&amp;gt; пар найдутся две одинаковые. Такого быть не может по доказанному выше, т. е. &amp;lt;tex&amp;gt;l k \geqslant n&amp;lt;/tex&amp;gt;, ч. т. д.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Следствие из теоремы ==&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} длина последовательности, тогда длина наибольшей монотонной подпоследовательности не меньше &amp;lt;tex&amp;gt;\sqrt{n}&amp;lt;/tex&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;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C#.D0.9D.D0.B5.D0.BA.D0.BE.D1.82.D0.BE.D1.80.D1.8B.D0.B5_.D0.B2.D0.B8.D0.B4.D1.8B_.D0.BF.D0.BE.D1.81.D0.BB.D0.B5.D0.B4.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE.D1.81.D1.82.D0.B5.D0.B9 Википедия {{---}} Последовательность]&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Longest_increasing_subsequence Wikipedia {{---}} Longest increasing subsequence]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Комбинаторика]]&lt;br /&gt;
[[Категория: Свойства комбинаторных объектов]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC%D0%B5/%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC%D0%B5_%D1%81%D0%BA%D0%B0%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=62913</id>
		<title>Задача о минимуме/максимуме скалярного произведения</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC%D0%B5/%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC%D0%B5_%D1%81%D0%BA%D0%B0%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=62913"/>
				<updated>2017-12-23T17:04:13Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: Добавлено &amp;quot;см. также&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ &lt;br /&gt;
Задача &lt;br /&gt;
|definition=Необходимо найти минимальную/максимальную суммы попарных произведений для двух заданных упорядоченных наборов чисел. &lt;br /&gt;
}} &lt;br /&gt;
== Решение == &lt;br /&gt;
Скалярным произведением двух упорядоченных последовательностей чисел будем называть число &amp;lt;tex&amp;gt;S = x_1 y_1 + x_2 y_2 + ... + x_m y_m&amp;lt;/tex&amp;gt; &lt;br /&gt;
{{ &lt;br /&gt;
Теорема &lt;br /&gt;
|about=о минимуме/максимуме скалярного произведениях&amp;lt;ref&amp;gt;[http://ru.wikipedia.org/wiki/Перестановочное_неравенс.. Транс-неравенство или перестановочное неравенство]&amp;lt;/ref&amp;gt; &lt;br /&gt;
|statement=Минимум скалярного произведения достигается при сопоставлении возрастающей последовательности &amp;lt;tex&amp;gt;x_1..x_m&amp;lt;/tex&amp;gt; и убывающей последовательности &amp;lt;tex&amp;gt;y_1..y_m&amp;lt;/tex&amp;gt;. При сопоставлении возрастающей &amp;lt;tex&amp;gt;y_1..y_m&amp;lt;/tex&amp;gt; достигается максимум. &lt;br /&gt;
&lt;br /&gt;
|proof= &lt;br /&gt;
Будем считать, что последовательность &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; отсортирована по возрастанию. Покажем, что если существуют пары чисел &amp;lt;tex&amp;gt;(x_i, y_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(x_j, y_j)&amp;lt;/tex&amp;gt;, такие что &amp;lt;tex&amp;gt;x_i &amp;lt; x_j&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_i &amp;lt; y_j&amp;lt;/tex&amp;gt;, то скалярное произведение можно уменьшить, поменяв местами &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_j&amp;lt;/tex&amp;gt;. Так как в нашем случае &amp;lt;tex&amp;gt;(x_j - x_i)(y_j - y_i) &amp;gt; 0&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;x_i y_i + x_j y_j &amp;gt; x_j y_i + x_i y_j&amp;lt;/tex&amp;gt;, а следовательно данное скалярное произведение не является минимальным. Проделав такую замену для всех &amp;lt;tex&amp;gt;y_i &amp;lt; y_j&amp;lt;/tex&amp;gt; получим отсортированную по убыванию последовательность &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt;, и скалярное произведение такой пары последовательностей будет минимальным. Аналогично для получения максимума во всех парах чисел &amp;lt;tex&amp;gt;(x_i, y_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(x_j, y_j)&amp;lt;/tex&amp;gt;, таких что &amp;lt;tex&amp;gt;x_i &amp;lt; x_j&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_i &amp;gt; y_j&amp;lt;/tex&amp;gt; нужно менять местами &amp;lt;tex&amp;gt;y_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y_j&amp;lt;/tex&amp;gt;. В результате получится отсортированная по возрастанию последовательность, и скалярное произведение  в таком случае будет максимальным.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Данная теорема нашла себе практическое применение в теории [[Теорема Радо-Эдмондса (жадный алгоритм)|матроидов]] и [[Flow shop| расписаний]].&lt;br /&gt;
&lt;br /&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;
== Источники информации == &lt;br /&gt;
* Романовский И. В. Дискретный анализ. — 3-е изд. — С. 320 — ISBN 5-7940-0114-3. &lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]] &lt;br /&gt;
&lt;br /&gt;
[[Категория: Комбинаторика ]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Свойства комбинаторных объектов]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<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=62911</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=62911"/>
				<updated>2017-12-23T16:49:45Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: степень в заголовках переделана в tex&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 + \dots + m_k = n &amp;lt;/tex&amp;gt; так, что при всех &amp;lt;tex&amp;gt; i: m_i \leqslant m_{i+1} &amp;lt;/tex&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Алгоритм за &amp;lt;tex&amp;gt;O(N^3)&amp;lt;/tex&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;
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;
== Алгоритм за &amp;lt;tex&amp;gt;O(N^2)&amp;lt;/tex&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;
== Алгоритм за &amp;lt;tex&amp;gt;O(N^{3/2})&amp;lt;/tex&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;
* [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>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62910</id>
		<title>КНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&amp;diff=62910"/>
				<updated>2017-12-23T16:32:24Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: 1) Изменены &amp;quot;...&amp;quot; на &amp;quot;\ldot&amp;quot; 2) Добавлена СКНФ для медианы от 5 аргументов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== КНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой дизъюнкцией''' (англ. ''inclusive disjunction'') или '''дизъюнктом''' (англ. ''disjunct'') называется дизъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая дизъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно один раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Конъюнктивная нормальная форма, КНФ''' (англ. ''conjunctive normal form, CNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид конъюнкции нескольких простых дизъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример КНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor y) \land (y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== СКНФ == &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная конъюнктивная нормальная форма, СКНФ''' (англ. ''perfect conjunctive normal form, PCNF'') — это такая КНФ, которая удовлетворяет условиям:&lt;br /&gt;
* в ней нет одинаковых простых дизъюнкций&lt;br /&gt;
* каждая простая дизъюнкция полная&lt;br /&gt;
}}&lt;br /&gt;
Пример СКНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \lor \neg{y} \lor z) \land (x\lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, не равной тождественной единице, существует СКНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Поскольку инверсия функции &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; равна единице на тех наборах, на которых &amp;lt;tex&amp;gt;f(\vec x)&amp;lt;/tex&amp;gt; равна нулю, то СДНФ для &amp;lt;tex&amp;gt;\neg{f}(\vec x)&amp;lt;/tex&amp;gt; можно записать следующим образом:&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg{f}(\vec x) = \bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}}) &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt; \sigma_{i} &amp;lt;/tex&amp;gt; обозначает наличие или отсутствие отрицание при &amp;lt;tex&amp;gt; x_{i} &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Найдём инверсию левой и правой части выражения:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \neg ({\bigvee\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (x_{1}^{\sigma_{1}} \wedge x_{2}^{\sigma_{2}} \wedge \ldots \wedge x_{n}^{\sigma_{n}})}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Применяя дважды к полученному в правой части выражению правило де Моргана, получаем:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec x) = \bigwedge\limits_{f(x^{\sigma_{1}}, x^{\sigma_{2}}, \ldots ,x^{\sigma_{n}}) = 0} (\neg{x_{1}^{\sigma_{1}}} \vee \neg{x_{2}^{\sigma_{2}}} \vee \ldots \vee \neg{x_{n}^{\sigma_{n}}} ) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последнее выражение и является СКНФ. Так как СКНФ получена из СДНФ, которая может быть посторена для любой функции, не равной тождественному нулю, то теорема доказана.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм построения СКНФ по таблице истинности ==&lt;br /&gt;
# В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Для каждого отмеченного набора записываем дизъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
# Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СКНФ для медианы==&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу : если значение некоторой переменной есть &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;, то в дизъюнкцию включаем саму переменную, иначе ее отрицание. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| '''x''' || '''y''' || '''z''' || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 0 || 1 || 0 || &amp;lt;tex&amp;gt;( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 0 || 1 || 0 || 0 || &amp;lt;tex&amp;gt;(x \lor \neg{y} \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! 1 || 0 || 0 || 0 || &amp;lt;tex&amp;gt;(\neg{x} \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 0 || 1 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 0 || 1 || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
| 1 || 1 || 1 || 1 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные дизъюнкции связываем операциями конъюнкции.&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = ( x \lor y \lor z) \land (\neg{x} \lor y \lor z) \land (x \lor \neg{y} \lor z) \land ( x \lor y \lor \neg{z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Примеры СКНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg{x} \lor {y}) \land ({x} \lor \neg {y}) \land (\neg {x} \lor \neg {y}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\neg {x} \lor \neg {y} \lor z) \land (\neg {x} \lor y \lor \neg {z}) \land (x \lor \neg {y} \lor \neg {z}) \land (x \lor y \lor z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Медиана 5 аргументов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (x_1 \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land (\overline{x_1} \lor x_2 \lor x_3 \lor x_4 \lor x_5) \land \\ (x_1 \lor \overline{x_2} \lor x_3 \lor x_4 \lor x_5) \land (\overline{x_1} \lor \overline{x_2} \lor x_3 \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor \overline{x_3} \lor x_4 \lor x_5) \land \\ (\overline{x_1} \lor x_2 \lor \overline{x_3} \lor x_4 \lor x_5) \land (x_1 \lor \overline{x_2} \lor \overline{x_3} \lor x_4 \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor \overline{x_4} \lor x_5) \land \\ (\overline{x_1} \lor x_2 \lor x_3 \lor \overline{x_4} \lor x_5) \land (x_1 \lor \overline{x_2} \lor x_3 \lor \overline{x_4} \lor x_5) \land (x_1 \lor x_2 \lor \overline{x_3} \lor \overline{x_4} \lor x_5) \land (x_1 \lor x_2 \lor x_3 \lor x_4 \lor \overline{x_5}) \land (\overline{x_1} \lor x_2 \lor x_3 \lor x_4 \lor \overline{x_5}) \land (x_1 \lor \overline{x_2} \lor x_3 \lor x_4 \lor \overline{x_5}) \land (x_1 \lor x_2 \lor \overline{x_3} \lor x_4 \lor \overline{x_5}) \land (x_1 \lor x_2 \lor x_3 \lor \overline{x_4} \lor \overline{x_5}) &amp;lt;/tex&amp;gt;&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%A1%D0%9A%D0%9D%D0%A4 Википедия {{---}} СКНФ]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская {{---}} Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=62908</id>
		<title>ДНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=62908"/>
				<updated>2017-12-23T16:22:40Z</updated>
		
		<summary type="html">&lt;p&gt;Haposiwe: 1) Изменены &amp;quot;...&amp;quot; на &amp;quot;\ldot&amp;quot; 2) Добавлена СДНФ для медианы от 5 аргументов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Простой конъюнкцией''' (англ. ''inclusive conjunction'') или '''конъюнктом''' (англ. ''conjunct'') называется конъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая конъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt; раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Дизъюнктивная нормальная форма, ДНФ''' (англ. ''disjunctive normal form, DNF'') {{---}} нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид дизъюнкции нескольких простых конъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример ДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land y) \lor (y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== СДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Совершенная дизъюнктивная нормальная форма, СДНФ''' (англ. ''perfect disjunctive normal form, PDNF'') — ДНФ, удовлетворяющая условиям:&lt;br /&gt;
* в ней нет одинаковых простых конъюнкций,&lt;br /&gt;
* каждая простая конъюнкция полная.&lt;br /&gt;
}}&lt;br /&gt;
Пример СДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec {x})&amp;lt;/tex&amp;gt;, не равной тождественному нулю, существует СДНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Для любой булевой функции выполняется следующее соотношение, называемое '''разложением Шеннона''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(\vec{x}) = \neg  x_i \wedge f(x_1, \ldots ,x_{i-1},0,x_{i+1}, \ldots ,x_n) \vee&lt;br /&gt;
x_i \wedge f(x_1, \ldots ,x_{i-1},1,x_{i+1}, \ldots ,x_n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Данное соотношение легко проверить подстановкой возможных значений &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;). Эта формула позволяет выносить &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; за знак функции. Последовательно вынося &amp;lt;tex&amp;gt;x_1&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;x_2&amp;lt;/tex&amp;gt;,.., &amp;lt;tex&amp;gt;x_n&amp;lt;/tex&amp;gt; за знак &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, получаем следующую формулу: &lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec{x}) = \neg  x_1 \wedge \neg  x_2 \wedge \ldots \wedge \neg  x_{n-1} \wedge \neg  x_n \wedge f(0,0,\ldots,0,0)~\vee~&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg  x_1 \wedge \neg  x_2 \wedge \ldots \wedge \neg  x_{n-1} \wedge x_n \wedge f(0,0,\ldots,0,1) ~\vee~ \\&lt;br /&gt;
\ldots \\&lt;br /&gt;
~\vee~ x_1 \wedge x_2 \wedge \ldots \wedge x_{n-1} \wedge \neg  x_n \wedge f(1,1,\ldots,1,0) ~\vee~\\ &lt;br /&gt;
x_1 \wedge x_2 \wedge \ldots \wedge x_{n-1} \wedge x_n \wedge f(1,1,\ldots,1) &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;2^n&amp;lt;/tex&amp;gt; конъюнктов. Каждый из них соответствует значению функции на одном из &amp;lt;tex&amp;gt;2^n&amp;lt;/tex&amp;gt; возможных наборов значений &amp;lt;tex&amp;gt; n &amp;lt;/tex&amp;gt; переменных. Если на некотором наборе &amp;lt;tex&amp;gt;f(\vec{x})=0&amp;lt;/tex&amp;gt;, то весь соответствующий конъюнкт также равен нулю и из представления данной функции его можно исключить. Если же &amp;lt;tex&amp;gt; f(\vec{x})=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;.&lt;br /&gt;
# Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
# Все полученные конъюнкции связываем операциями дизъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СДНФ для медианы==&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; y &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть &amp;lt;tex&amp;gt; 1 &amp;lt;/tex&amp;gt;, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
|&amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; y &amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x} \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land \neg {y} \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x \land y \land \neg {z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные конъюнкции связываем операциями дизъюнкции:&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = (x \land y \land z) \lor (\neg {x} \land y \land z) \lor (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Примеры СДНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg {x} \land \neg {y})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\overline{x} \land \overline{y} \land z) \lor (\overline{x} \land y \land \overline{z}) \lor (x \land \overline{y} \land \overline{z}) \lor (x \land y \land z)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Медиана 5 аргументов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x_1, x_2, x_3, x_4, x_5 \rangle = (x_1 \land x_2 \land x_3 \land \overline{x_4} \land \overline{x_5}) \lor (x_1 \land x_2 \land \overline{x_3} \land x_4 \land \overline{x_5}) \lor \\ (x_1 \land \overline{x_2} \land x_3 \land x_4 \land \overline{x_5}) \lor (\overline{x_1} \land x_2 \land x_3 \land x_4 \land \overline{x_5}) \lor (x_1 \land x_2 \land x_3 \land x_4 \land \overline{x_5}) \lor \\ (x_1 \land x_2 \land \overline{x_3} \land \overline{x_4} \land x_5) \lor (x_1 \land \overline{x_2} \land x_3 \land \overline{x_4} \land x_5) \lor (\overline{x_1} \land x_2 \land x_3 \land \overline{x_4} \land x_5) \lor \\ (x_1 \land x_2 \land x_3 \land \overline{x_4} \land x_5) \lor (x_1 \land \overline{x_2} \land \overline{x_3} \land x_4 \land x_5) \lor (\overline{x_1} \land x_2 \land \overline{x_3} \land x_4 \land x_5) \lor (x_1 \land x_2 \land \overline{x_3} \land x_4 \land x_5) \lor (\overline{x_1} \land \overline{x_2} \land x_3 \land x_4 \land x_5) \lor (x_1 \land \overline{x_2} \land x_3 \land x_4 \land x_5) \lor (\overline{x_1} \land x_2 \land x_3 \land x_4 \land x_5) \lor (x_1 \land x_2 \land x_3 \land x_4 \land x_5) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
* [[Сокращенная и минимальная ДНФ]]&lt;br /&gt;
* [[КНФ]]&lt;br /&gt;
&lt;br /&gt;
==Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%A1%D0%94%D0%9D%D0%A4 СДНФ — Википедия]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская — Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>Haposiwe</name></author>	</entry>

	</feed>