Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|||||||||||
1 | |||||||||||
Расширенный алгоритм Евклида14.11.2009, 13:15. Показов 17654. Ответов 11
Метки нет (Все метки)
Не могу найти решение на Паскале задачи на расширенный алгоритм Евклида:
Для целых m и n, в процессе нахождения d=НОД(m,n) с помощью алгоритма Евклида, определить минимальные x и y, целые, такие, что d=m*x+n*y. Нужно простое решение, без процедур и функций. В Инете есть что-то подобное на СИ. Другими словами, в приведенную ниже программу надо добавить строки, определяющие x и y.
Добавлено через 15 минут Лишняя скобка, опечатка
0
|
14.11.2009, 13:15 | |
Ответы с готовыми решениями:
11
Алгоритм Евклида Алгоритм Евклида Функции и Алгоритм Евклида НОК алгоритм Евклида |
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
14.11.2009, 14:04 | 2 |
Я что-то смысл не понимаю. Если
http://www.cyberguru.ru/cpp-so... klida.html Выдает 0 и 1. Или я вообще не врубаюсь.
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
14.11.2009, 14:18 [ТС] | 3 |
Нет, немного не так. Я пример приведу, станет понятнее:
m=44 n=16 d=NOD=4 найденные числа x=3 y=-8 имеем: 44*3=132, 16*(-8)=-128 m*x+n*y=132-128=4=d Но начинать там надо именно с 0 и 1, на СИ так написано, а потом, видимо, сохранять полученные частные
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
14.11.2009, 14:25 | 4 |
Вообще-то 16*(-32)=-512, но не в этом дело, не могу понять откуда возьмутся отрицательные числа. Надо что-то почитать.
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
14.11.2009, 14:31 [ТС] | 5 |
Нашел ещё меньшие числа для этого примера x=-1 y=3 -44+48=4
Добавлено через 40 секунд насчет 32 - это я погорячился, там 8 а без отрицательных чисел не получится ответа, там вычитать надо из m полученное частное, на что-то умноженное
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
14.11.2009, 22:56 | 6 |
http://ru.wikipedia.org/wiki/Алгоритм_Евклида
Там есть описание расширенного алгоритма Евклида.
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
14.11.2009, 22:57 | 7 |
odip, Да уж наверно почитали. А по ссылке, которую я приложил, даже код на Си есть.
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
14.11.2009, 23:04 [ТС] | 8 |
Да читал я всё, что есть в Инете, а уж ссылки на Википедию - спасибо, что сказали, сам, такой дурак, ни за что бы не догадался. Я просто в СИ полный ноль, мне код на Паскале нужен.
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
14.11.2009, 23:53 | 9 |
Код
x = -1 y = 3 d = 4 Осталось переписать на Pascal Добавлено через 1 минуту Вообще-то там сверху алгоритм описан на псевокоде. Так что язык С не нужно знать.
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
14.11.2009, 23:59 [ТС] | 10 |
Самое смешное, что с псевдокода ни я, никто другой, на Паскаль не смогли перевести...
0
|
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
|
|||||||||||
15.11.2009, 04:07 | 11 | ||||||||||
Сообщение было отмечено как решение
Решение
вот мой перевод с псевдокода на Pascal. конечно может я чего-то не понял(потому как я не понимаю тогда в чем было затруднение перевода с псевдокода), но считается все верно, я проверял.
не знаю конечно чем функции и процедуру усложняют программу... но влюбом случае кину два варианта с процедурой и без... вот с процедурой:
8
|
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 22
|
||||||||||||||||||||||||||
16.06.2013, 01:44 | 12 | |||||||||||||||||||||||||
Доброго всем времени суток!
Я попытался перевести псевдокод и вот что у мя получилось:
Но тут собака порылась вот в чём (или я чё-то не допетриваю): в соответствии с примером с одного из форумов - берутся 2 числа а:= 11 и b:= 13 - ф-ция Эйлера (как и в примере) возвращает мне phi:= 120 - это кольцо вычетов, далее в примере (вродь как случайным образом) выбирают константу е:= 113 и через расширенный алгоритм Евклида вычисляют противоположную по кольцу взимнопростую d:= 17.
Заранее благодарен. Добавлено через 23 минуты Вернее мож Хто растолкует эквивалент (ф-цию) магической комбинации ...=> * => - =>... В справке не нашёл. З. Ы. Сорри - не дотумкал, что в теме может быть 2-я страница и вродь как продублировал перевод псевдокода хотя и с небольшой поправочкой - это под VCL но думаю что и из-под CLX вызовется и сработает.
0
|
16.06.2013, 01:44 | |
16.06.2013, 01:44 | |
Помогаю со студенческими работами здесь
12
Сокращение дроби (алгоритм Евклида) Наибольший общий делитель двух натуральных чисел A и B, используя алгоритм Евклида Описать рекурсивную функцию NOD(A,B), находящую наибольший общий делитель двух чисел, используя алгоритм Евклида Даны натуральные числа A и B. Найти их НОК, определив функцию для расчета НОД двух натуральных чисел, используя алгоритм Евклида Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |