1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Witaliy |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 43 Пол: Мужской Реальное имя: Witaliy Репутация: 0 |
Здравствуйте
Мне нужно алгоритм нахождения НОД под длинную арифметику, тоисть что-бы был как можно быстрее. У меня есть рекурсивный и с использованием mod, но под длинную арифметику ето неефективно. Мне любой кроме остатка от деляния и рекурсии. Мне реализации самой длинной арифметики ненадо, только алгоритм НОД. Спасибо. Сообщение отредактировано: Witaliy - |
![]() ![]() |
| volvo |
Сообщение
#2
|
|
Гость |
Цитата Скажыте еще пожалуйста, каую длинню арифметику лутше использовать? Такого вида как у меня, или такую с 1000 системой счисления?? Чем больше основание системы счисления - тем короче циклы, и меньше времени нужно для обработки данных. Для примера: реализация Окулова (почти та, что лежит у нас в FAQ-е. Почти - потому что работает с типом TLong, а не PLong, так проще отслеживать возможные проблемы) отрабатывает почти в 20 раз быстрее твоей на том самом примере, который я приводил в посте №12 (на TP7). А ведь там - основание СС = всего 10000. А если взять массив LongInt-ов и основание = 1 млрд., представляешь, насколько меньше "цифр" будет в такой СС? Чем больше будут числа X и Y, тем больше выигрыш во времени...Цитата Ещё вопрос, знаете ли вы какой-то алгоритм для НОД без использования деления?.. Да что ты привязался к делению? Ну, замени взятие остатка вычитанием, легче тебе от этого станет? Сейчас программы выполняются за секунды, будут выполняться за часы, это все, чего ты добьешься. |
Witaliy НОД под длинную арифметику 25.03.2009 16:31
Lapp реализации самой длинной арифметики ненадо, только… 25.03.2009 16:41
Witaliy Действительно..... :) 25.03.2009 16:43
volvo Ты реализацию своей длинной арифметики покажи, и з… 25.03.2009 16:48
Witaliy числа <= 10^2550
[b]Добавлено через 2 мин.
[… 25.03.2009 16:59
volvo Ты знаешь, у меня есть реализация длинной арифмети… 25.03.2009 17:37
Witaliy Мжете показать реализация длинной арифметики? очен… 25.03.2009 17:42
volvo А в твоей программе сразу же видно, где теряется п… 25.03.2009 17:48
Witaliy Да, спасибо :)
Добавлено через 1 мин.
Тоисть п… 25.03.2009 17:50
volvo Тоисть под Free Pascal?
да, покажыте пожалуйста.Во… 25.03.2009 18:25
Witaliy Да не важно, любые
например 55 5
выводит 5
45
7
вы… 25.03.2009 18:29
volvo Твоя программа при попытке вычислить НОД чисел 345… 25.03.2009 20:43
Witaliy Скажыте еще пожалуйста, каую длинню арифметику лут… 25.03.2009 21:52![]() ![]() |
|
Текстовая версия | 23.12.2025 0:16 |