Изменения

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

Матричный умножитель

2 байта добавлено, 02:32, 16 января 2011
Схемная сложность
вначале мы суммируем <tex>m_0</tex> и <tex>m_1</tex>, саму сумму занесем в <tex>u_1</tex>, а переносы в <tex>v_1</tex>(в <tex>u_1</tex> и <tex>v_1</tex> будет не более n+1 битов в каждом), затем суммируем числа <tex>u_1</tex>, <tex>v_1</tex>, <tex>m_2</tex> и получаем <tex>u_2</tex>, <tex>v_2</tex>. Так суммируется <tex>u_{i-1}</tex>, <tex>v_{i-1}</tex>, <tex>m_i</tex> для всех i = 2, 3, … , n – 1. В итоге получаем два числа <tex>u_{n-1}</tex> и <tex>v_{i-1}</tex>, которые складываем с помощью [[двоичный каскадный сумматор|двоичного каскадного сумматора]].
==Схемная сложность==
Частичные произведения вычисляются за ''n'' шагов. Сложение с вычисление вычислением переносов включает ''n - 1'' шаг. Последнее сложение можно выполнить за ''O(log n)''. <br>
В итоге суммарное время работы: <br>
''O(n) + O(n) + O(log n) = O(n)'' <br>
Анонимный участник

Навигация