Преобразование Мёбиуса для получения коэффициентов полинома Жегалкина — различия между версиями
м |
Rybak (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | Пусть задана [[Определение_булевой_функции|булева функция]] <tex>f: B^n \rightarrow B, \;\; B=\{ 0; 1 \}</tex>. Любая | + | Пусть задана [[Определение_булевой_функции|булева функция]] <tex>f: B^n \rightarrow B, \;\; B=\{ 0; 1 \}</tex>. |
+ | Любая булева функция представима в виде [[Полином_Жегалкина|полинома Жегалкина]], притом единственным образом. | ||
+ | Пусть <tex> i = (i _{1}, i _{2}, .. i _{n}), \;\; i _{k} = \{0 ; 1\}</tex>, и введем обозначение <tex> x ^{i _{k}} \sim \left\{\begin{matrix} x, \;\; i _{k}=1 | ||
\\ 1, \;\; i _{k}=0 | \\ 1, \;\; i _{k}=0 | ||
− | \end{matrix}\right. </tex> . Тогда [[Полином_Жегалкина|полином Жегалкина]] можно записать как: <tex> f(x) = \bigoplus\limits_{i} \alpha _{i} \cdot x_{1}^{i_{1}} \cdot x_{2}^{i_{2}} \cdot ... \cdot x_{n}^{i_{n}}</tex>, где <tex>\alpha _{i} \in \{ 0; 1 \}</tex>. | + | \end{matrix}\right. </tex> . |
+ | Тогда [[Полином_Жегалкина|полином Жегалкина]] можно записать как: | ||
+ | <tex> f(x) = \bigoplus\limits_{i} \alpha _{i} \cdot x_{1}^{i_{1}} \cdot x_{2}^{i_{2}} \cdot ... \cdot x_{n}^{i_{n}}</tex>, где <tex>\alpha _{i} \in \{ 0; 1 \}</tex>. | ||
<br/> | <br/> | ||
Множество коэффициентов <tex>\{\alpha _{i}\}</tex> можно рассматривать как функцию <tex>\alpha</tex>, заданной на множестве индексов <tex> i \in \overline{1..n}</tex>, то есть <tex>\alpha: i \mapsto \alpha_{i}</tex>. | Множество коэффициентов <tex>\{\alpha _{i}\}</tex> можно рассматривать как функцию <tex>\alpha</tex>, заданной на множестве индексов <tex> i \in \overline{1..n}</tex>, то есть <tex>\alpha: i \mapsto \alpha_{i}</tex>. | ||
Строка 7: | Строка 11: | ||
Очевидно, функцию <tex> f </tex> можно записать и следующим образом: <tex> f(x) = \bigoplus \limits_{i} \alpha _{i} \cdot [x _{1} , \; </tex> если <tex> \;\; i _{1}] \cdot [x _{2} , \; </tex> если <tex> \;\; i _{2}] \cdot ... \cdot [x _{n} , \; </tex> если <tex> \;\; i_{n}]</tex>. | Очевидно, функцию <tex> f </tex> можно записать и следующим образом: <tex> f(x) = \bigoplus \limits_{i} \alpha _{i} \cdot [x _{1} , \; </tex> если <tex> \;\; i _{1}] \cdot [x _{2} , \; </tex> если <tex> \;\; i _{2}] \cdot ... \cdot [x _{n} , \; </tex> если <tex> \;\; i_{n}]</tex>. | ||
− | Тут запись <tex>[x _{k} , \; </tex> если <tex> \; i _{k}]</tex> означает, что элелемент <tex> x_{k} </tex> присутствует в соответствующем члене полинома только если <tex> i_{k} = 1 </tex>. Тогда если для какого-то <tex>x</tex>, <tex>i \succ x</tex> ,то в слагаемом будет существовать хотя бы один множитель, равный нулю, и такое слагаемое на сумму не повлияет. | + | Тут запись <tex>[x _{k} , \; </tex> если <tex> \; i _{k}]</tex> означает, что элелемент <tex> x_{k} </tex> присутствует в соответствующем члене полинома только если <tex> i_{k} = 1 </tex>. |
+ | Тогда если для какого-то <tex>x</tex>, <tex>i \succ x</tex> ,то в слагаемом будет существовать хотя бы один множитель, равный нулю, и такое слагаемое на сумму не повлияет. | ||
Отсюда ясно, что <tex> f(x) = \bigoplus \limits_{i \preceq x} \alpha _{i} </tex>. <tex> (1) </tex><br/> | Отсюда ясно, что <tex> f(x) = \bigoplus \limits_{i \preceq x} \alpha _{i} </tex>. <tex> (1) </tex><br/> | ||
Найдем отображение <tex> f \mapsto \alpha</tex> (То есть такое, которое по заданной функции вычисляет значения всех коэффциентов). | Найдем отображение <tex> f \mapsto \alpha</tex> (То есть такое, которое по заданной функции вычисляет значения всех коэффциентов). |
Версия 08:53, 21 ноября 2010
Пусть задана булева функция . Любая булева функция представима в виде полинома Жегалкина, притом единственным образом. Пусть , и введем обозначение .
Тогда полином Жегалкина можно записать как:
Множество коэффициентов можно рассматривать как функцию , заданной на множестве индексов , то есть .
Очевидно, функцию
можно записать и следующим образом: если если если .Тут запись
Найдем отображение (То есть такое, которое по заданной функции вычисляет значения всех коэффциентов).
Теорема: |
Пусть задана функция . Тогда функцию можно найти по формуле: . |
Доказательство: |
Докажем при помощи индукции по количеству единиц в векторе Рассмотрим сумму |
Отображение также называется преобразованием Мёбиуса.
Видно, что
и это одно и тоже преобразование. Значит, если применить преобразование Мёбиуса к функции, а затем вновь применить то же преобразование к получившейся функции, тогда вновь получим исходную функцию . То есть преобразование Мёбиуса обратно самому себе (Иными словами: является инволюцией).Литература
- Логачёв О.А, Сальников А.А., Ященко В.В. Булевы фунции в теории кодирования и криптологии — МЦНМО, 2004. - 470с. — ISBN 5-94057-117-4.