Страница:
<< 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,
v,
z:
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
равно удвоенному наименьшему общему кратному
чисел
a,
b:
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]