ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Фильтр
Сложность с по   Класс с по  
Выбрана 1 задача
Версия для печати
Убрать все задачи

(Э. Дейкстра) Добавим в алгоритм Евклида дополнительные переменные u, vz:

         m := a; n := b; u := b; v := a;
        {инвариант: НОД (a,b) = НОД (m,n); m,n >= 0 }
        while not ((m=0) or (n=0)) do begin
        | if m >= n then begin
        | | m := m - n; v := v + u;
        | end else begin
        | | n := n - m; u := u + v;
        | end;
        end;
        if m = 0 then begin
        | z:= v;
        end else begin {n=0}
        | z:= u;
        end;
Доказать, что после исполнения алгоритма значение z равно удвоенному наименьшему общему кратному чисел ab: z = 2 . НОК(a, b).

   Решение

Задачи

Страница: << 2 3 4 5 6 7 8 >> [Всего задач: 55]      



Задача 76247  (#1.2.16)

Тема:   [ Многочлены ]
Сложность: 4

Предложенный выше алгоритм перемножения многочленов требует порядка n2 действий для перемножения двух многочленов степени n. Придумать более эффективный (для больших n) алгоритм, которому достаточно порядка nlog 4/log 3 действий.
Прислать комментарий     Решение


Задача 76213  (#1.1.17)

Темы:   [ Знакомство с циклами ]
[ Задачи с целыми числами ]
[ НОД и НОК. Алгоритм Евклида ]
Сложность: 2

(Э. Дейкстра) Добавим в алгоритм Евклида дополнительные переменные u, vz:

         m := a; n := b; u := b; v := a;
        {инвариант: НОД (a,b) = НОД (m,n); m,n >= 0 }
        while not ((m=0) or (n=0)) do begin
        | if m >= n then begin
        | | m := m - n; v := v + u;
        | end else begin
        | | n := n - m; u := u + v;
        | end;
        end;
        if m = 0 then begin
        | z:= v;
        end else begin {n=0}
        | z:= u;
        end;
Доказать, что после исполнения алгоритма значение z равно удвоенному наименьшему общему кратному чисел ab: z = 2 . НОК(a, b).
Прислать комментарий     Решение

Задача 76248  (#1.2.17)

Темы:   [ Условный оператор ]
[ Знакомство с циклами ]
Сложность: 2

Даны два возрастающих массива x: array[1..k] of integer и y: array[1..l] of integer. Найти количество общих элементов в этих массивах, то есть количество тех целых t, для которых t = x[i] = y[j] для некоторых i и j. (Число действий порядка k + l.)
Прислать комментарий     Решение


Задача 76214  (#1.1.18)

Темы:   [ Знакомство с циклами ]
[ Задачи с целыми числами ]
[ НОД и НОК. Алгоритм Евклида ]
Сложность: 2

Написать вариант алгоритма Евклида, использующий соотношения

НОД(2a, 2b) = 2·НОД(a,b),
НОД(2a,b) = НОД(a,b)      при нечётном b,

не включающий деления с остатком, а использующий лишь деление на 2 и проверку чётности. (Число действий должно быть порядка log k для исходных данных, не превосходящих k.)
Прислать комментарий     Решение


Задача 76249  (#1.2.18)

Темы:   [ Условный оператор ]
[ Знакомство с циклами ]
Сложность: 2

Решить предыдущую задачу, если про массивы известно лишь, что x[1]...≤x[k] и  y[1]...≤y[l] (возрастание заменено неубыванием).
Прислать комментарий     Решение


Страница: << 2 3 4 5 6 7 8 >> [Всего задач: 55]      



© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .