|
Алгоритм Евклида. Как вычислить число итераций? | ☑ | ||
---|---|---|---|---|
0
megabax
15.08.15
✎
19:28
|
Добрый день. Подскажите, пожалуйста, решение вот такой задачи.
Даны два числа, m и n. Надой найти их наибольший общий делитель. Ищется он по алгоритму Евклида: 1. Делим m на n, получаем остаток r. 2. Если r=0 то n - искомое значение и мы прекращаем алгоритм. 3. Присваиваем m=n, n=r. 4. Переход к шагу 1. Нужно определить среднее число итераций, если известно m и n. Подскажите, пожалуйста, решение с доказательствами? |
|||
1
jsmith82
15.08.15
✎
19:29
|
Что такое среднее число итераций
|
|||
2
ДенисЧ
15.08.15
✎
19:31
|
||||
3
jsmith82
15.08.15
✎
19:33
|
А что такое О
|
|||
4
jsmith82
15.08.15
✎
19:34
|
Время работы алгоритма оценивается теоремой Ламе, которая устанавливает удивительную связь алгоритма Евклида и последовательности Фибоначчи:
Если a > b >= 1 и b < F(n) для некоторого n, то алгоритм Евклида выполнит не более n-2 рекурсивных вызовов |
|||
5
rphosts
15.08.15
✎
19:38
|
(3) читается как "О большое",.... https://ru.wikipedia.org/wiki/«O»_большое_и_«o»_малое
|
|||
6
jsmith82
15.08.15
✎
19:39
|
Тот факт, что число шагов, затрачиваемых алгоритмом Евклида, растет логарифмически, связан с числами Фибоначчи:
Теорема (Ламэ, 1845 г.). Пусть n О N , и пусть a > b > 0 такие, что алгоритму Евклида для обработки а и b необходимо выполнить точно n шагов (делений с остатком), причем а - наименьшее с таким свойством. Тогда а = F n +2 , b = F n +1 , где F k - k- ое число Фибоначчи. Доказательство можно посмотреть, например, здесь: http://virlib.eunnet.net/books/numbers/text/10.html С помощью этой теоремы можно оценить порядок роста алгоритма Евклида. Пусть a будет меньшим из двух аргументов процедуры. Если процесс завершается за k шагов, тогда должно выполняться a>=Fib(k), т.е. приблизительно равно f^5/sqrt(5) - золотое сечение. Следовательно, число шагов k растет как логарифм a(по основанию f)! |
|||
7
jsmith82
15.08.15
✎
19:40
|
(5) спс
|
|||
8
ДенисЧ
15.08.15
✎
20:02
|
(3) фшколу!
|
|||
9
rphosts
15.08.15
✎
20:12
|
(8) не уверен, мне первый раз про О и о разъяснили на матане в универе.
|
|||
10
ДенисЧ
15.08.15
✎
20:13
|
(9) Хорошо. Фвысшуюшколу.
|
|||
11
rphosts
15.08.15
✎
20:20
|
(10) тогда уж в высшую техническую школу... на филфаках матанов не преподают.
|
|||
12
ДенисЧ
15.08.15
✎
20:25
|
(11) Ты отстал от жизни. Лет на 80.
Но в матане сложность алгоритмов точно не дают |
|||
13
jsmith82
15.08.15
✎
20:35
|
я где-то проходил сложность алгоритмов, но где не помню
из башки выветрилось |
|||
14
ДенисЧ
15.08.15
✎
20:42
|
(13) Может, в метро?
|
|||
15
jsmith82
15.08.15
✎
21:22
|
(14) Как смешно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |