Изменения

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

Наибольший общий делитель

573 байта добавлено, 02:55, 31 января 2017
Двоичный алгоритм Евклида
Мы получили очень простой алгоритм, который считает НОД за логарифмическое время. However, we can do better.
===Двоичный алгоритм Евклида===
Идея улучшения: давайте вместо долгого деления ограничимся вычитаниями и битовыми сдвигами.
 
Для начала, опишем еще несколько свойств <tex>gcd</tex>:
{{Утверждение
|statement=
Пусть <tex>a</tex> и <tex>b</tex> - натуральные числа, тогда
* <tex>\gcd(2a, 2b) = 2\cdot\gcd(a, b)</tex>
* <tex>\gcd(2a, 2b + 1) = \gcd(a, 2b + 1)</tex>
|proof=
Тривиальным образом следует из определения
}}
===Расширенный алгоритм Евклида===
42
правки

Навигация