2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Расширенный алгоритм евклида для "школьника".
Сообщение18.03.2015, 23:57 


11/08/13
128
Где про него максимально просто написано с примерами? Гугл выдает либо "запроганный" алгоритм, либо с символами непривычными без расшифровки.

Вот:
1) http://algolist.manual.ru/maths/teornum/nod.php (с программным кодом)
2) http://e-maxx.ru/algo/export_extended_euclid_algorithm (с какими-то скобками странными и %)
И так везде, очень странно....

 Профиль  
                  
 
 Re: Расширенный алгоритм евклида для "школьника".
Сообщение19.03.2015, 00:03 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
По первой ссылке: там, где написано «Псевдокод» — это всё-таки для Вас, а не для компьютера.
По второй: там всё объяснено. a%b — так в некоторых языках программирования обозначается остаток от деления a на b.

 Профиль  
                  
 
 Re: Расширенный алгоритм евклида для "школьника".
Сообщение19.03.2015, 00:07 


11/08/13
128
svv в сообщении #992264 писал(а):
По первой ссылке: там, где написано «Псевдокод» — это всё-таки для Вас, а не для компьютера.

Но все равно, в коде этом копаться очень неудобно...

 Профиль  
                  
 
 Re: Расширенный алгоритм евклида для "школьника".
Сообщение19.03.2015, 00:53 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Попробуйте представить этот алгоритм в форме заполнения таблицы с четырьмя столбцами. В таком виде пункт 3.2 не нужен.

 Профиль  
                  
 
 Re: Расширенный алгоритм евклида для "школьника".
Сообщение19.03.2015, 01:23 


11/08/13
128
svv в сообщении #992274 писал(а):
Попробуйте представить этот алгоритм в форме заполнения таблицы с четырьмя столбцами. В таком виде пункт 3.2 не нужен.

Как представить, откуда взять таблицу и понять связь в ней?

 Профиль  
                  
 
 Re: Расширенный алгоритм евклида для "школьника".
Сообщение19.03.2015, 01:25 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Пусть $a=37, b=11$. Сначала пишем
$\begin{matrix}&37&1&0\\{.}&11&0&1\end{matrix}$

Числа, только что дописанные, помечаю синим.

Затем:
$\begin{matrix}&37&1&0\\\color{blue}3&11&0&1\\&\color{blue}4&\color{blue}1&\color{blue}-3\end{matrix}$

Здесь $\color{blue}3$ — это частное $37:11$. Потом, используя это частное, получаем числа нижней строки:
$37-{\color{blue}3}\cdot 11={\color{blue}4} \quad\quad 1-{\color{blue}3}\cdot 0={\color{blue}1} \quad\quad 0-{\color{blue}3}\cdot 1={\color{blue}-3}$.

Затем аналогично:
$\begin{matrix}&37&1&0\\3&11&0&1\\\color{blue}2&4&1&-3\\&\color{blue}3&\color{blue}-2&\color{blue}7\end{matrix}$

Затем:
$\begin{matrix}&37&1&0\\3&11&0&1\\2&4&1&-3\\\color{blue}1&3&-2&7\\&\color{blue}1&\color{blue}3&\color{blue}-10\end{matrix}$

Затем:
$\begin{matrix}&37&1&0\\3&11&0&1\\2&4&1&-3\\1&3&-2&7\\\color{blue}3&1&3&-10\\&\color{blue}0&&\end{matrix}$
Стоп.

Попробуйте понять, как заполняется таблица на каждом шаге.

 Профиль  
                  
 
 Re: Расширенный алгоритм евклида для "школьника".
Сообщение19.03.2015, 12:30 
Заслуженный участник
Аватара пользователя


28/04/14
968
спб
Для простоты рассмотрим случай взаимно простых $a$ и $b$. Тогда вам надо найти такие $x$ и $y$, что $ax + by = 1$.
Запустим алгоритм Евклида например для $a=17$ и $b=13$:
$$17 = 1 \cdot 13 + 4,$$
$$13 = 3 \cdot 4 + 1,$$
Из последнего равенства можно выразить нужную нам единичку.
$$1=13 - 3 \cdot 4.$$
Из первого равенства можно выразить четверку и подставить в предыдущее равенство.
$$1 = 13 - 3 \cdot (17 - 1 \cdot 13).$$
Раскроем скобки и получим искомое разложение единички $$1 = 4\cdot 13 - 3\cdot 17.$$
Понятно, что в общем случае, поднимаясь вот так вот снизу вверх через выражение остатков на каждом шаге, мы в конце концов к придем к нужному выражению НОД. Проделайте тоже самое, например, для $a=325$ и $b=117$.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group