|
|
|||||||||||||||||||||
Самый быстрый алгоритм Евклида вычисления НОД13.10.2011, 18:41. Показов 107438. Ответов 44
Метки нет (Все метки)
Заинтересовал вопрос о различных реализациях алгоритма Евклида для неотрицательных целых чисел. Ниже привожу алгоритмы, собственноручно написанные, исходя из теоретического материала. Каждый алгоритм можно модифицировать в ту или иную сторону.
Считается, что бинарный алгоритм работает быстрее, но мои тесты показывают, что два первых алгоритма работают быстрее бинарного. Может ли кто перепроверить на скорость на своих компиляторах, а то очень интересно и не видится никаких преимуществ бинарного алгоритма.
20
|
|||||||||||||||||||||
| 13.10.2011, 18:41 | |
|
Ответы с готовыми решениями:
44
|
|
0 / 0 / 0
Регистрация: 13.04.2018
Сообщений: 1
|
||||||
| 29.06.2018, 15:00 | ||||||
|
Здравствуйте, если кто ещё бывает на этой теме. Долго разбирался, как действует бинарный алгоритм (не привык я работать с битами).
Насколько я понял, первый цикл while отсекает все степени двойки, а второй фактически работает через разности, с дополнительными циклами, которые должны бы заменить остаток от деления, но в половине случаев простаивают. Попытался оптимизировать как понял:
0
|
||||||
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,347
|
|||||||
| 30.06.2018, 02:02 | |||||||
shift_a и shift_b)Дальше применяется обычный Евклидов алгоритм НОД для чисел, которые остались после деления на 2. Когда мы получили этот НОД, надо просто умножить его на 2min(shift_a, shift_b) - и готов результат. Вот тут действительно полезен побитовый сдвиг. --- Я бы предположил, что такая оптимизация не имеет большого смысла, пока мы не пользуемся встроенными процессорными средствами для выполнения исходных исчерпывающих делений на 2. Например, для GCC
0
|
|||||||
|
0 / 0 / 0
Регистрация: 17.03.2022
Сообщений: 8
|
|
| 14.05.2022, 11:25 | |
|
Данные цели положительные числа А и В. Найти их наибольшего общего делителя (НОД),
используя алгоритм Евклида: НОД(А, В) = НОД(B, A mod В), если В ≠0; НОД(A, 0) = А, где «mod» означает операцию взятия остатка от деления. А такое сможете решить?
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|
| 14.05.2022, 20:54 | |
|
0
|
|
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,347
|
||||||||||||
| 11.09.2022, 19:58 | ||||||||||||
|
Как только мы знаем, какая степень двойки является общим делителем для исходных значений a и b, промежуточные значения в процессе работы Алгоритма Евклида уже можно делить на 2 (то есть выдвигать из них замыкающие вереницы нулей) ни о чем не беспокоясь - это не приведет к искажению финального значения НОД.В терминах C++20 получаем что-то вроде
0
|
||||||||||||
| 11.09.2022, 19:58 | |
|
Алгоритм Евклида вычисления НОД - проверить корректность вычислений Построить алгоритм Маркова, который ищет НОД (Алгоритм Евклида) НОД . Рекурсивный алгоритм Евклида Алгоритм Евклида для нахождения НОД НОД двух чисел алгоритм Евклида Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|