Полином на Жегалкин

Полином на Жегалкин – представяне на булеви функции | Дискретна математика | Д-р Атанас Илчев
📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити 📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити
Математика › Дискретна математика › Полином на Жегалкин

Полином на Жегалкин.
Представяне на булеви функции като полиноми

Определение, теорема за еднозначност, основни формули, два метода за намиране — 6 разработени задачи и задачи за самостоятелна работа
Полином на Жегалкин Булеви функции 6 разработени задачи Дискретна математика Д-р Атанас Илчев

Как логическите функции се превеждат на езика на алгебрата чрез събиране по модул \(2\)

Полиномът на Жегалкин е едно от най-елегантните представяния на булевите функции. Вместо да описваме логическа функция чрез дизюнкция, конюнкция, отрицание, импликация и еквивалентност, я записваме като специален полином, в който участват само променливите, произведения от тях и събиране по модул \(2\). Резултатът е компактен и алгебрично удобен запис.

Темата е кръстена на руския математик Иван Иванович Жегалкин, който в началото на XX век развива алгебричен подход към логическите функции. Идеята е дълбока: логиката не е само въпрос на таблици за истинност, тя може да се изучава и чрез алгебрични структури. Освен теоретичния интерес, полиномът на Жегалкин има и пряко приложение в програмирането — операциите XOR и AND са точно събирането по модул \(2\) и умножението в тези полиноми. В криптографията линейността на полинома на Жегалкин е ключов критерий за устойчивост на криптографските функции.

1. Основна идея
Основна идея. В полинома на Жегалкин работим само с \(0\) и \(1\), като събирането се извършва по модул \(2\), а умножението е обикновено булево умножение (конюнкция).
Таблица за събиране по модул \(2\):
\(0+0=0\),  \(0+1=1\),  \(1+0=1\),  \(1+1=0\).

Знакът „\(+\)" в полинома на Жегалкин означава изключващо или (XOR), не обикновено събиране. От тази дефиниция следват три фундаментални правила, които се използват при всяко опростяване: \[x+x=0,\qquad 1+1=0,\qquad x\cdot x=x.\] Последното следва директно от таблицата за умножение: \(0\cdot0=0\) и \(1\cdot1=1\).

Определение. Полином на Жегалкин на \(n\) променливи се нарича израз от вида \[a_0+a_1x_1+a_2x_2+\cdots+a_{12}x_1x_2+\cdots+a_{12\cdots n}x_1x_2\cdots x_n,\] където всички коефициенти \(a_i\in\{0,1\}\), а събирането е по модул \(2\). Членовете са всички възможни произведения от различни подмножества на променливите (включително празното произведение \(=1\), което дава свободния член \(a_0\)).
Теорема (Жегалкин). Всяка булева функция на \(n\) променливи може да бъде представена еднозначно чрез полином на Жегалкин. Следователно това представяне е канонично.
2. Основни формули
Представяния на логическите операции чрез полином на Жегалкин:

\[\overline{x}=1+x;\] \[x_1\lor x_2=x_1+x_2+x_1x_2;\] \[x_1\to x_2=1+x_1+x_1x_2;\] \[x_1\equiv x_2=1+x_1+x_2;\] \[x_1\oplus x_2\ \text{(изключващо или)}=x_1+x_2.\]

Тези формули позволяват директно да превеждаме логическите изрази на езика на полиномите. След превода полученият израз се опростява с правилата \(x+x=0\), \(1+1=0\), \(xx=x\).

3. Как се намира полиномът на Жегалкин
Метод 1 — от логическа формула. Заменяме всяка логическа операция с нейния полиномиален аналог от таблицата по-горе, след което опростяваме с трите основни правила.
Метод 2 — от таблица за истинност. Търсим полином с неизвестни коефициенти \(a_0, a_1, a_2, a_{12}, \ldots\) и ги намираме последователно, като заместваме стойностите на променливите от отделните редове на таблицата, започвайки от \((0,0,\ldots,0)\).
Проверка на намерения полином. Тъй като теоремата на Жегалкин гарантира единственост, достатъчно е да проверим, че полиномът дава верни стойности за всичките \(2^n\) реда на таблицата за истинност. Ако всички редове съвпадат — полиномът е намерен правилно.
Линейност на полинома на Жегалкин. Казваме, че булева функция е линейна, ако нейният полином на Жегалкин съдържа само членове от вида \(a_0\), \(a_i x_i\) — тоест без никакви произведения на две или повече променливи. Примери за линейни функции: \(\overline{x}=1+x\), \(x_1\oplus x_2=x_1+x_2\). Пример за нелинейна: \(x_1\lor x_2=x_1+x_2+x_1x_2\) — членът \(x_1x_2\) е произведение от две променливи. Линейността е важен критерий в криптографията: функция с нелинейни членове е по-устойчива срещу линейни атаки.

Разработени задачи

Кликнете върху задача, за да видите решението.

1
Намерете полинома на Жегалкин на \(f(x_1,x_2)=x_1\lor x_2\).
Решение Използваме директно формулата за дизюнкция: \[x_1\lor x_2=x_1+x_2+x_1x_2.\] Следователно \(\boxed{f(x_1,x_2)=x_1+x_2+x_1x_2}\). \(\blacksquare\)
2
Намерете полинома на Жегалкин на \(f(x_1,x_2)=x_1\to x_2\).
Решение Записваме импликацията като \(x_1\to x_2=\overline{x_1}\lor x_2\) и заместваме \(\overline{x_1}=1+x_1\): \[f=(1+x_1)\lor x_2.\] Прилагаме формулата \(a\lor b=a+b+ab\) при \(a=1+x_1\), \(b=x_2\): \[f=(1+x_1)+x_2+(1+x_1)x_2=1+x_1+x_2+x_2+x_1x_2.\] Понеже \(x_2+x_2=0\): \[\boxed{f(x_1,x_2)=1+x_1+x_1x_2.}\] \(\blacksquare\)
3
Намерете полинома на Жегалкин на \(f(x_1,x_2)=\overline{x_1}\cdot x_2\).
Решение Заместваме \(\overline{x_1}=1+x_1\): \[f=(1+x_1)x_2=x_2+x_1x_2.\] Следователно \(\boxed{f(x_1,x_2)=x_2+x_1x_2}\). \(\blacksquare\)
4
По таблицата за истинност намерете полинома на Жегалкин на \(f(x_1,x_2)\): \[\begin{array}{c|c|c}x_1&x_2&f\\\hline 0&0&1\\0&1&1\\1&0&0\\1&1&1\end{array}\]
Решение Търсим \(f=a_0+a_1x_1+a_2x_2+a_{12}x_1x_2\) с \(a_i\in\{0,1\}\).

От ред \((0,0)\): \(a_0=1\).
От ред \((0,1)\): \(a_0+a_2=1\Rightarrow 1+a_2=1\Rightarrow a_2=0\).
От ред \((1,0)\): \(a_0+a_1=0\Rightarrow 1+a_1=0\Rightarrow a_1=1\).
От ред \((1,1)\): \(a_0+a_1+a_2+a_{12}=1\Rightarrow 1+1+0+a_{12}=1\Rightarrow a_{12}=1\).

Следователно \(\boxed{f(x_1,x_2)=1+x_1+x_1x_2}\). \(\blacksquare\)
5
По таблицата за истинност намерете полинома на Жегалкин на \(f(x_1,x_2,x_3)\): \[\begin{array}{c|c|c|c}x_1&x_2&x_3&f\\\hline 0&0&0&0\\0&0&1&1\\0&1&0&0\\0&1&1&1\\1&0&0&0\\1&0&1&1\\1&1&0&1\\1&1&1&0\end{array}\]
Решение Търсим полином от вида \[f=a_0+a_1x_1+a_2x_2+a_3x_3+a_{12}x_1x_2+a_{13}x_1x_3+a_{23}x_2x_3+a_{123}x_1x_2x_3.\] Заместваме последователно редовете на таблицата:

От ред \((0,0,0)\): \(a_0=0\).
От ред \((0,0,1)\): \(a_0+a_3=1\Rightarrow a_3=1\).
От ред \((0,1,0)\): \(a_0+a_2=0\Rightarrow a_2=0\).
От ред \((0,1,1)\): \(a_0+a_2+a_3+a_{23}=1\Rightarrow 0+0+1+a_{23}=1\Rightarrow a_{23}=0\).
От ред \((1,0,0)\): \(a_0+a_1=0\Rightarrow a_1=0\).
От ред \((1,0,1)\): \(a_0+a_1+a_3+a_{13}=1\Rightarrow 0+0+1+a_{13}=1\Rightarrow a_{13}=0\).
От ред \((1,1,0)\): \(a_0+a_1+a_2+a_{12}=1\Rightarrow 0+0+0+a_{12}=1\Rightarrow a_{12}=1\).
От ред \((1,1,1)\): \(a_0+a_1+a_2+a_3+a_{12}+a_{13}+a_{23}+a_{123}=0\Rightarrow 0+0+0+1+1+0+0+a_{123}=0\Rightarrow a_{123}=0\).

Следователно \(\boxed{f(x_1,x_2,x_3)=x_3+x_1x_2}\). \(\blacksquare\)
6
Намерете полинома на Жегалкин на функцията на три променливи, която приема стойност \(1\) точно когато поне две от \(x_1,x_2,x_3\) са равни на \(1\).
Решение Това е функцията на мнозинството. Логическият й запис е: \[f=(x_1x_2)\lor(x_1x_3)\lor(x_2x_3).\] Намираме полинома стъпка по стъпка. Нека \(a=x_1x_2\), \(b=x_1x_3\): \[a\cdot b=x_1x_2\cdot x_1x_3=x_1x_2x_3.\] Следователно \(a\lor b=x_1x_2+x_1x_3+x_1x_2x_3\).
Нека \(c=x_2x_3\). Тогава: \[(a\lor b)\lor c=(x_1x_2+x_1x_3+x_1x_2x_3)\lor x_2x_3.\] Прилагаме отново \(p\lor q=p+q+pq\): \[f=x_1x_2+x_1x_3+x_1x_2x_3+x_2x_3+(x_1x_2+x_1x_3+x_1x_2x_3)x_2x_3.\] Разкриваме последния член: \[x_1x_2\cdot x_2x_3+x_1x_3\cdot x_2x_3+x_1x_2x_3\cdot x_2x_3=x_1x_2x_3+x_1x_2x_3+x_1x_2x_3.\] Три еднакви члена по модул \(2\): \(x_1x_2x_3+x_1x_2x_3+x_1x_2x_3=x_1x_2x_3\). Събираме всичко: \[f=x_1x_2+x_1x_3+x_2x_3+x_1x_2x_3+x_1x_2x_3=x_1x_2+x_1x_3+x_2x_3.\] (последните два члена се съкращават: \(x_1x_2x_3+x_1x_2x_3=0\))

Следователно \(\boxed{f(x_1,x_2,x_3)=x_1x_2+x_1x_3+x_2x_3}\). \(\blacksquare\)
7
Намерете полинома на Жегалкин на \(f(x_1,x_2,x_3)=x_1\lor x_2\lor x_3\).
Решение Прилагаме формулата за дизюнкция последователно.

Първо: \(x_1\lor x_2=x_1+x_2+x_1x_2\).

Сега \((x_1\lor x_2)\lor x_3\). При \(a=x_1+x_2+x_1x_2\), \(b=x_3\): \[f=a+b+ab=x_1+x_2+x_1x_2+x_3+(x_1+x_2+x_1x_2)x_3.\] Разкриваме: \[f=x_1+x_2+x_3+x_1x_2+x_1x_3+x_2x_3+x_1x_2x_3.\] Следователно \(\boxed{f=x_1+x_2+x_3+x_1x_2+x_1x_3+x_2x_3+x_1x_2x_3}\). \(\blacksquare\)

Приложение в програмирането и цифровите системи

Едно от най-естествените приложения на полинома на Жегалкин е работата с битови операции. В повечето езици за програмиране операторите XOR и AND отговарят директно на събирането по модул \(2\) и умножението в полинома. Затова, когато една булева функция е записана в тази форма, тя може да бъде реализирана директно в код или цифрова схема.

Пример. Система с три сензора \(x_1,x_2,x_3\) трябва да се активира, ако поне два от трите подават сигнал. Полиномът на Жегалкин на тази функция е \(f=x_1x_2+x_1x_3+x_2x_3\), което се реализира в програмен код като:

f = (x1 AND x2) XOR (x1 AND x3) XOR (x2 AND x3)

Само три AND и два XOR — без разклонения, без таблици за истинност.

В криптографията линейността на полинома на Жегалкин е ключов критерий: функция, чийто полином съдържа само линейни членове (от вида \(a_i x_i\)), е линейна и уязвима. Нелинейните членове (произведения на две или повече променливи) правят функцията устойчива срещу линейни атаки. Паритетната проверка при предаване на данни е друг пряк пример: \(p=x_1+x_2+\cdots+x_n\) проверява нечетния брой единици точно чрез полинома на Жегалкин.


Задачи за самостоятелна работа

Опитайте сами преди да погледнете краткия отговор.

Задача 1Намерете полинома на Жегалкин на \(f(x_1,x_2)=x_1\equiv x_2\).
Задача 2Намерете полинома на Жегалкин на \(f(x_1,x_2)=\overline{x_1\cdot x_2}\).
Задача 3Намерете полинома на Жегалкин на \(f(x_1,x_2)=x_1\lor\overline{x_2}\).
Задача 4Намерете полинома на Жегалкин на \(f(x_1,x_2,x_3)=\overline{x_1}\cdot x_2\cdot x_3\).
Задача 5По таблицата намерете полинома на Жегалкин на функцията: \[f(0,0)=0,\quad f(0,1)=1,\quad f(1,0)=1,\quad f(1,1)=1.\]
Задача 6Намерете полинома на Жегалкин на функцията на три променливи, която е равна на \(1\) точно когато броят на единиците е нечетен.
Задача 7Намерете полинома на Жегалкин на \(f(x_1,x_2,x_3)=x_1\lor(x_2\cdot\overline{x_3})\).

Видео уроци
🎥
Видео урок — очаквайте скоро
Следете канала за нови публикации.
▶ Абонирайте се за канала

Свързани уроци
Булеви функции — свойства, пълнота и теорема на Бул
Комутативност, асоциативност, ДДНФ, пълни множества — теорема на Бул, 4 разработени задачи и тест.
Преглед на урока →

Запишете урок

Индивидуални и групови онлайн уроци по математика за цялата страна

🎓 Подготовка за изпити
  • НВО по математика след 7 клас
  • НВО по математика след 10 клас
  • Кандидатстудентски изпити по математика
  • Софийски университет „Св. Климент Охридски“
  • УАСГ – Университет по архитектура, строителство и геодезия
  • Технически университет – София и др.
  • Прием в университети в чужбина (ISEE, SAT, A-Level и др.)
📚 Текущо обучение и студенти
  • Усвояване на текущия учебен материал (всички класове)
  • Студенти по всички математически дисциплини:
    Математически анализ, Линейна алгебра, Аналитична геометрия, Диференциални уравнения, Теория на вероятностите, Статистика и др.

Харесва ли ви съдържанието?

Ако този урок ви е бил полезен, можете да подкрепите създаването на нови безплатни материали.

📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити 📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити

Коментари

Популярни публикации от този блог

Множества. Основни понятия - обединение, сечение, разлика и допълнение на множества

Триъгълник. Сбор на ъгли в триъгълник. Външен ъгъл на триъгълник 7 клас

Ъгли получени при пресичането на две прави с трета. Теореми признаци, за успоредност на две прави 7 клас