Выражение функции XOR через медианы — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м
(Метки: правка с мобильного устройства, правка из мобильной версии)
м (rollbackEdits.php mass rollback)
 
(не показано 5 промежуточных версий 2 участников)
Строка 13: Строка 13:
 
** sm+3=x0,x1,x2,¬x3,,¬xm1,¬xm,¬xm+1,¬xm+2,xm+3,,x2m1,x2m,
 
** sm+3=x0,x1,x2,¬x3,,¬xm1,¬xm,¬xm+1,¬xm+2,xm+3,,x2m1,x2m,
  
И нужно проверить, что медиана от всего этого набора si, вместе с ¬x0, ($\langle \neg x_0, s_1, s_2, \ldots, s_{2m} \rangle)совпадетс\mathrm {XOR}$-ом с 2m+1-м аргументом.  
+
И нужно проверить, что $\langle \neg x_0, s_1, s_2, \ldots, s_{2m} \rangle = x_0 \oplus x_1 \oplus \ldots \oplus x_{2m}$.
  
  
Строка 34: Строка 34:
 
|statement=Среди xi четное число единиц найдется двойственная пара, элементы которой имеют одинаковое количество самостоятельных единиц.
 
|statement=Среди xi четное число единиц найдется двойственная пара, элементы которой имеют одинаковое количество самостоятельных единиц.
 
|proof=
 
|proof=
Пусть Ai {{---}} множество аргументов si с отрицанием, Bi {{---}} без отрицания. Оба множества по условию мощности m.
+
Пусть Ai {{---}} множество аргументов (за исключением x0) si с отрицанием, Bi {{---}} без отрицания (тоже за исключением x0). Оба множества по условию мощности m.
 
Пусть среди Ai ровно ai переменных равны единице, тогда оставшиеся (mai) из них {{---}} нули.  
 
Пусть среди Ai ровно ai переменных равны единице, тогда оставшиеся (mai) из них {{---}} нули.  
 
Аналогично среди Bi ровно bi единиц и (mbi) нулей.
 
Аналогично среди Bi ровно bi единиц и (mbi) нулей.
Строка 48: Строка 48:
 
Но ai=bi, значит ai+bi четное.
 
Но ai=bi, значит ai+bi четное.
  
Вообще, утверждения "нашлась двойственная пара, элементы которой имеют одинаковое количество самостоятельных единиц" (1) и "нашлась si с количеством самостоятельных единиц, равным m" (2) равносильны.
+
Вообще, утверждения "нашлась двойственная пара, элементы которой имеют одинаковое количество самостоятельных единиц" (1) и "нашлась si с количеством самостоятельных единиц, равным m" равносильны.
  
 
И правда, выше мы поняли, что (1) ai=bi. Посчитаем количество самостоятельных единиц в si. ((mai)+bi)=mai=bi.
 
И правда, выше мы поняли, что (1) ai=bi. Посчитаем количество самостоятельных единиц в si. ((mai)+bi)=mai=bi.
Строка 54: Строка 54:
 
 
  
Пусть среди xi будет 2t единиц.
+
Пусть среди ${x_i} (i > 0)будет2t$ единиц.
 
Давайте найдем sj, в которой среди Aj единиц столько же, сколько и среди Bj. Тогда в ней будет aj=bj, из чего и будет следовать требуемое.  
 
Давайте найдем sj, в которой среди Aj единиц столько же, сколько и среди Bj. Тогда в ней будет aj=bj, из чего и будет следовать требуемое.  
 
Рассмотрим любую sk. Будем считать, что в Ak меньше половины единиц (ak<t), иначе рассмотрим двойственную ей, в ней будет меньше половины, или, если равенство, то мы уже нашли такую.
 
Рассмотрим любую sk. Будем считать, что в Ak меньше половины единиц (ak<t), иначе рассмотрим двойственную ей, в ней будет меньше половины, или, если равенство, то мы уже нашли такую.
Будем последовательно сдвигать отрицания вправо на одну позицию, переходя от sl к sl+1. За каждый сдвиг количество единиц в Al может измениться только на 1.
+
Будем последовательно сдвигать отрицания вправо на одну позицию, переходя от sl к sl+1. За каждый сдвиг количество единиц в Al может измениться только на $1$.
 
Действительно, если в Al добавились и ушли разные числа, то количество единиц изменилось на 1 (увеличилось или уменьшилось), а если одинаковые {{---}} то не поменялось.
 
Действительно, если в Al добавились и ушли разные числа, то количество единиц изменилось на 1 (увеличилось или уменьшилось), а если одинаковые {{---}} то не поменялось.
 
Таким образом, сделав m шагов, мы дойдем от sk до ¬sk, причем количество единиц в Al будет изменяться не более, чем на 1. Изначально оно было al, а станет {{---}} 2tal.
 
Таким образом, сделав m шагов, мы дойдем от sk до ¬sk, причем количество единиц в Al будет изменяться не более, чем на 1. Изначально оно было al, а станет {{---}} 2tal.
Строка 83: Строка 83:
 
#* Пусть kim+1ki+mm1 (и аналогично с противоположным знаком) по-прежнему (тут с учетом x0=1) в обычных парах одна si будет равна 1, а вторая 0.
 
#* Пусть kim+1ki+mm1 (и аналогично с противоположным знаком) по-прежнему (тут с учетом x0=1) в обычных парах одна si будет равна 1, а вторая 0.
 
#* При нечетном количестве единиц особенных пар нет, будет снова только ровно m обычных пар, из каждой ровно одна si даст единицу. Тогда среди всех si будет ровно m единиц, и, подставив их в конечную медиану, вместе с ¬x0=0, получим ровно m аргументов, равных 1. Тогда медиана вернет 0, что и должен вернуть XOR четного числа единиц.
 
#* При нечетном количестве единиц особенных пар нет, будет снова только ровно m обычных пар, из каждой ровно одна si даст единицу. Тогда среди всех si будет ровно m единиц, и, подставив их в конечную медиану, вместе с ¬x0=0, получим ровно m аргументов, равных 1. Тогда медиана вернет 0, что и должен вернуть XOR четного числа единиц.
#* При четном количестве у нас найдется особенная пара, а в этих si и ¬si ровно по m самостоятельных единиц, а значит, они обе будут равны 1, ведь вместе с x0=1 среди аргументов медиан будет по m+1 единиц. Тогда всего среди si будет не менее m+1 si=1, значит, конечная медиана вернет 1, что и нужно при XOR нечетного числа единиц.
+
#* При четном количестве у нас найдется особенная пара, а в этих si и ¬si ровно по m самостоятельных единиц, а значит, они обе будут равны 1, ведь вместе с x0=1 среди аргументов медиан будет по m+1 единиц. Тогда всего среди si будет не менее m+1 si=1, значит, конечная медиана вернет 1, что и нужно при XORнечетного числа единиц.
 
}}
 
}}
  

Текущая версия на 19:36, 4 сентября 2022

Теорема:
x0x1x2m=¬x0,s1,s2,,s2m, sj=x0,xj,xj+1,,xj+m1,¬xj+m,¬xj+m+1,,¬xj+2m1, где x2m+k обозначает то же, что и xk, при k1.

Разберемся с условием. Мы хотим доказать, что побитовый XOR с 2m+1 аргументами выражается с помощью медианы с 2m+1 аргументом. Аргументами медианы является набор {si}, получаемый следующим образом:

  • Выпишем последовательность x1,x2,,x2m
  • Первую половину аргументов (а их ровно m) возьмем с отрицанием (¬x1,¬x2,,¬xm,xm+1,xm+2,,x2m)
  • Слева к этой последовательности припишем x0 и подадим в качестве аргументов медиане: x0,¬x1,¬x2,,¬xm,xm+1,xm+2,,x2m — так мы получили sm+1
  • Остальные si получаются "циклическим сдвигом" отрицания (без учета x0), например, вправо (так мы получим все "циклические сдвиги" отрицаний):
    • s1=x0,x1,x2,x3,,xm1,xm,¬xm+1,¬xm+2,¬xm+3,,¬x2m1,¬x2m
    • sm=x0,¬x1,¬x2,¬x3,,¬xm1,xm,xm+1,xm+2,xm+3,x2m1,¬x2m
    • sm+2=x0,x1,¬x2,¬x3,,¬xm1,¬xm,¬xm+1,xm+2,xm+3,x2m1,x2m,
    • sm+3=x0,x1,x2,¬x3,,¬xm1,¬xm,¬xm+1,¬xm+2,xm+3,,x2m1,x2m,

И нужно проверить, что ¬x0,s1,s2,,s2m=x0x1x2m.


Вспомогательные утверждения

Лемма:
Каждой si можно однозначно сопоставить в пару такую sj, что все переменные (кроме x0) с отрицанием из si в sj будут без отрицания и наоборот. Аргументы x0 у всех si одинаковые, поэтому будем разбивать на пары без учета x0.
Доказательство:
Мы строим набор si, циклически сдвигая отрезок отрицания переменных, пока не получим все возможные. Совершив ровно m таких шагов, мы сдвинем начало отрезка отрицания на следующую позицию после его конца. Таким образом, там, где был отрезок отрицания, будет отрезок без отрицания, и наоборот.

Назовем такую пару (si,sj) двойственной, и будем обозначать через ¬si двойственную si пару.

Пусть на j-ом месте у si стоит единица (j>0). Назовем этот аргумент самостоятельной единицей.

Утверждение:
Если в si ровно n самостоятельных единиц, то в ¬si их будет (2mn).
У двойственного элемента все самостоятельные единицы станут нулями, а все нули — единицами. А всего позиций 2m.
Утверждение:
Среди xi четное число единиц найдется двойственная пара, элементы которой имеют одинаковое количество самостоятельных единиц.

Пусть Ai — множество аргументов (за исключением x0) si с отрицанием, Bi — без отрицания (тоже за исключением x0). Оба множества по условию мощности m. Пусть среди Ai ровно ai переменных равны единице, тогда оставшиеся (mai) из них — нули. Аналогично среди Bi ровно bi единиц и (mbi) нулей. Самостоятельные единицы si получаются из нулей среди Ai и единиц среди Bi. Тогда в si будет (mai)+bi самостоятельных единиц. В ¬si переменные заменятся на их отрицания, поэтому самостоятельные единицы в ней получаются из единиц среди Ai и нулей среди Bi. Поэтому количество самостоятельных единиц в ¬si будет ai+(mbi).

Приравняем количества самостоятельных единиц в паре: (mai)+bi=ai+(mbi)ai=bi

А ai и bi — количества единиц в Ai и в Bi соответственно, и, так как множество всех аргументов si это AiBi, то (ai+bi) и есть количество единиц среди ее аргументов. Но ai=bi, значит ai+bi четное.

Вообще, утверждения "нашлась двойственная пара, элементы которой имеют одинаковое количество самостоятельных единиц" (1) и "нашлась si с количеством самостоятельных единиц, равным m" равносильны.

И правда, выше мы поняли, что (1) ai=bi. Посчитаем количество самостоятельных единиц в si. ((mai)+bi)=mai=bi.

Пусть среди xi(i>0) будет 2t единиц. Давайте найдем sj, в которой среди Aj единиц столько же, сколько и среди Bj. Тогда в ней будет aj=bj, из чего и будет следовать требуемое. Рассмотрим любую sk. Будем считать, что в Ak меньше половины единиц (ak<t), иначе рассмотрим двойственную ей, в ней будет меньше половины, или, если равенство, то мы уже нашли такую. Будем последовательно сдвигать отрицания вправо на одну позицию, переходя от sl к sl+1. За каждый сдвиг количество единиц в Al может измениться только на 1. Действительно, если в Al добавились и ушли разные числа, то количество единиц изменилось на 1 (увеличилось или уменьшилось), а если одинаковые — то не поменялось. Таким образом, сделав m шагов, мы дойдем от sk до ¬sk, причем количество единиц в Al будет изменяться не более, чем на 1. Изначально оно было al, а станет — 2tal. Тогда выполняются неравенства: akt2tak. Левый знак верен просто потому, что мы так выбрали sk, а правый, очевидно, равносилен первому. Таким образом, мы, изменяя al не больше, чем на единицу, пришли из ak в 2tak, причем число t было между ними. Поэтому мы обязательно на каком-то шаге оказались с al=t, то есть ровно половина единиц попала в Al, чего мы и хотели.

Заметим также, что мы доказали наличие одной пары, но на самом деле таких может быть больше. Давайте такие пары назовем особенными, а остальные — обычными.

Доказательство теоремы

Теорема:
x0x1x2m=¬x0,s1,s2,,s2m, sj=x0,xj,xj+1,,xj+m1,¬xj+m,¬xj+m+1,,¬xj+2m1
Доказательство:

Пусть ki — количество самостоятельных единиц у si.

Рассмотрим два случая.

  1. x0=0.
    • Тогда в каждой si будет стоять вместо него 0, то есть количество аргументов-единиц в точности равно количеству самостоятельных единиц.
    • Пусть kim+1ki+mm1 (и аналогично с противоположным знаком) в обычных парах одна si будет равна 1, а вторая 0.
    • При нечетном количестве единиц особенных пар не будет, будет только ровно m обычных пар, из каждой ровно одна si даст единицу. Тогда среди всех si будет ровно m единиц, и, подставив их в конечную медиану, вместе с ¬x0=1, получим ровно m+1 аргумент, равный 1. Тогда медиана вернет 1, что и должен вернуть XOR нечетного числа единиц.
    • При четном количестве у нас найдется особенная пара, а в этих si и ¬si ровно по m самостоятельных единиц, а значит, они обе будут равны 0. Тогда всего среди s будет не более (m1)si равных одному, значит, конечная медиана вернет 0, что и нужно при XOR-е четного числа единиц.
  2. x0=1
    • Тогда в каждой si будет стоять вместо него 1, то есть количество аргументов-единиц для si на один больше количества самостоятельных единиц.
    • Пусть kim+1ki+mm1 (и аналогично с противоположным знаком) по-прежнему (тут с учетом x0=1) в обычных парах одна si будет равна 1, а вторая 0.
    • При нечетном количестве единиц особенных пар нет, будет снова только ровно m обычных пар, из каждой ровно одна si даст единицу. Тогда среди всех si будет ровно m единиц, и, подставив их в конечную медиану, вместе с ¬x0=0, получим ровно m аргументов, равных 1. Тогда медиана вернет 0, что и должен вернуть XOR четного числа единиц.
    • При четном количестве у нас найдется особенная пара, а в этих si и ¬si ровно по m самостоятельных единиц, а значит, они обе будут равны 1, ведь вместе с x0=1 среди аргументов медиан будет по m+1 единиц. Тогда всего среди si будет не менее m+1 si=1, значит, конечная медиана вернет 1, что и нужно при XOR-е нечетного числа единиц.

См. также

Источники информации