Изменения

Перейти к: навигация, поиск

Дерево Уоллеса

15 байт убрано, 13:29, 12 января 2012
Элемент 3→2
===Элемент 3→2===
[[file:3→2.png|thumb|200px|Элемент 3→2]]
Теперь о томДля того, как устроен элемент чтобы представить сумму трёх чисел с помощью двух чисел, воспользуемся полным сумматором. Для каждого <tex>i</tex> направим <tex>x_i</tex>, <tex>y_i</tex> и <tex>z_i</tex> на вход полного сумматора. Тогда младший бит сумматора будет <tex>i</tex>-ым битом первого числа, а старший {{---}} <tex>3\to2(i + 1)</tex>-ым второго.
Для построения элемента Очевидно, полученные числа в сумме дают <tex>3\to2x + y + z</tex> нам потребуется элемент, который умеет складывать 3 бита и возвращать 2 бита результата.Основная идея реализации {{---}} отдельная обработка переносов и остатков.
Тогда первое число ответа На иллюстрации изображён элемент <tex>a</tex> может быть получена так:<tex>a_i = x_i 3\oplus y_i \oplus z_i</tex> ,где <tex>x</tex>, <tex>y</tex> и <tex>zto2</tex> {{---}} входные числадля четырёхбитных чисел, а <tex>x_i</tex>в верхнем прямоугольнике изображены четыре полных сумматора, <tex>y_i</tex> выходы которых и <tex>z_i</tex> {{---}} соответствующие их <tex>i</tex>-е битыявляются разрядами результатов.
Второе же число <tex>b</tex> можно получить так:<tex> \begin{cases}b_0 & = 0\\b_{i + 1} & = \langle x_i, y_i, z_i \rangle\end{cases}</tex> ,где <tex>\langle xПоскольку все полные сумматоры работают параллельно (выходы на каждом из них зависят только от собственных входов), y, z\rangle</tex> {{---}} функция медианы то глубина такой схемы есть константа (она же "голосование 2 из 3"не зависит от количества бит). С помощью этой функции считается перенос. Очевидно, полученные числа <tex>a</tex> и <tex>b</tex> дадут в сумме <tex>x + y + z</tex>
==Схемная сложность==
304
правки

Навигация