Изменения
→Элемент 3→2
Для построения элемента <math>3\to2</math> нам потребуется элемент, который умеет складывать 3 бита и возвращать 2 бита результата.
Основная идея реализации --- отдельная обработка переносов и остатков.
Тогда первое число ответа <math>a</math> может быть получена так:
<math>a_i = x_i \oplus y_i \oplus z_i</math> ,
где <math>x</math>, <math>y</math> и <math>z</math> --- входные числа, а <math>x_i</math>, <math>y_i</math> и <math>z_i</math> --- соответствующие их <math>i</math>-е биты.
Второе же число <math>b</math> можно получить так:
b_{i + 1} & = \langle x_i, y_i, z_i \rangle
\end{cases}</math> ,
где <math>\langle x, y, z\rangle</math> --- функция медианы(она же "голосование 2 из 3"). С помощью этой функции считается перенос.
Очевидно, полученные числа <math>a</math> и <math>b</math> дадут в сумме <math>x + y + z</math>