Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм Евклида для решения ax+by=1 
:(
    Опции темы
whoever
Дата 5.4.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 5.7.2007

Репутация: нет
Всего: 1



http://algolist.manual.ru/maths/teornum/nod.php#3
Можно ли его модифицировать так, чтобы все операции проводились только с неотрицательными числами? Важно только получение коэффициента при меньшем из a и b.
PM   Вверх
maxim1000
Дата 6.4.2008, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



имеется в виду ax+by=1 или ax+by=1 mod m?
(потому что ответы для этих случаев будут разные)


--------------------
qqq
PM WWW   Вверх
whoever
Дата 6.4.2008, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 5.7.2007

Репутация: нет
Всего: 1



ax + by = 1.
Изначально уравнение имеет вид by = 1 (mod a).
PM   Вверх
maxim1000
Дата 6.4.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



ну тогда без отрицательных чисел не получится
отбросим случай, когда одно из чисел =1
тогда какие бы ни были a и b>0, a*x+b*y будет >=x+y>1
т.е. отрицательные числа не просто возможны - один из коэффициентов всегда будет отрицательным


--------------------
qqq
PM WWW   Вверх
whoever
Дата 6.4.2008, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 5.7.2007

Репутация: нет
Всего: 1



Именно отрицательный коэффициент мне и не нужен. Поэтому, может быть, его положительной заменой можно добиться неизменности другого коэффициента?
PM   Вверх
maxdiver
Дата 6.4.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



whoever
Цитата
Изначально уравнение имеет вид by = 1 (mod a).

Значит, требуется найти его решение при y>0.
Значит, нужно решить уравнение ax + by = 1 при y>0, а x может быть любым.
Тогда решение такое: находим любое решение этого уравнения алгоритмом Евклида, а затем приводим y к положительному, пользуясь такой операцией (корректность которой очевидна): к y прибавить a, а от x отнять b.
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 6.4.2008, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(whoever @  6.4.2008,  11:25 Найти цитируемый пост)
Именно отрицательный коэффициент мне и не нужен. Поэтому, может быть, его положительной заменой можно добиться неизменности другого коэффициента? 

нет, не получится
я ж написал, что при обоих положительных коэффициентах результат никак не может равняться 1
ну разве что числа, перед которыми коэффициенты ищутся, могут быть отрицательными?


--------------------
qqq
PM WWW   Вверх
whoever
Дата 6.4.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 5.7.2007

Репутация: нет
Всего: 1



а > b >= 0, x < 0, y > 0.
Кажется, Вы меня неверно поняли. В процессе вычисления x и y не имеется возможности использовать отрицательные числа. Каким будет в итоге x - неважно. Так вот: можно ли чем-то положительным в процессе вычисления заменять x, чтобы y остался правильным (т.е., не вычитать q*E[0][0] и q*E[1][0] из правого столбца, а прибавлять что-то другое).

Естественно, одно из x и y должно быть меньше нуля, но так как x < 0 неважен, с ним можно делать что угодно.

Это сообщение отредактировал(а) whoever - 6.4.2008, 19:25
PM   Вверх
v2v
Дата 6.4.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



пройди этот алгоритм до конца - найди д. потом методом подбора, увеличивая на 1 y найди подходящих х .


--------------------
PM   Вверх
maxim1000
Дата 6.4.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(whoever @  6.4.2008,  19:24 Найти цитируемый пост)
В процессе вычисления x и y не имеется возможности использовать отрицательные числа. Каким будет в итоге x - неважно.

хм... тогда не очень понятна природа ограничения...
можно поподробнее описать его причины?
а то, обычно, если нельзя использовать отрицательные числа, значит, нет возможности их и получить...
ну разве что это ограничение для всех операций кроме последней?


--------------------
qqq
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0970 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.