Next:5.3.5
Упражнения
Up:5.3
Программы обработки векторов
Previous:5.3.3
Подсчет количеств вхождений
Для заданного вещественного вектора
и функции g(x,y) = max(x+y, x-y) найти g-свертку вектора
Решение. В соответствии с определением g-свертки имеем
для всех i. Из этого соотношения легко усматривается следующий способ
вычисления ответа:
1) последовательно за шагов вычисляются g-свертки векторов, образующих последовательность B[1:1], B[1:2], ... ,B[1:n];
2) на первом шаге g-свертка вектора B[1:1] равна a200;
3) на -ом шаге для получения g-свертки вектора B[1:i+1] из g-свертки вектора B[1:i] в соответствии с соотношением (*) применяется функция g;
4) в качестве ответа выдается полученная на последнем шаге g-свертка вектора B[1:i+1]. Реализация указанного способа приводит к программе
module СверткаВектора;
const M = 200;
var A : array M+1 of real;
T : real;
procedure G (X,Y : real):real;
var S, R : real;
begin S:= X+Y; R:=X-Y;
if
SR
then
return S else return R end G;
begin
for I := 1 to M do read(A[I])
end;
T := A[M];
(* {T=свертка(B[1:1])} *)
for I := M-1 to 1 by -1 do
(* {T=свертка(B[1:200-I])}
*)
T :=
G(A[I],T)
end;
(* {T=свертка(B)} *)
writeln ('Свертка равна',T)
end СверткаВектора.
Next:5.3.5
Упражнения
Up:5.3
Программы обработки векторов
Previous:5.3.3
Подсчет количеств вхождений