Персональная страничка
| ||
Предыдущий раздел:
Следующий раздел:
1. Укажите 4-й член последовательности заданной рекуррентным соотношением
2. Какими рекуррентными соотношениями задаются последовательности
а) 2, 4, 16, 256, …
б) 2, 0.5, 2, 0.5, 2, …
в) 2, 5, 8, 11, 14, …
г) 2, -4, 16, -256, …
3. Какую функцию переменной x вычисляет программа? Укажите также рекуррентные соотношения, в соответствии с которыми происходят вычисления.
а) |
readln(x); y:=0; p:=1; sgn:=1; for i:=2 to 4 do begin p:=p*x; y:=y+sgn*p; sgn:=-sgn; end; writeln(y); |
б) |
readln(x); y:=0; p:=1; for i:=1 to 4 do begin p:=-p*x*x; y:=y+p/i; end; writeln(y); |
в) |
readln(x); y:=1; p:=1; for i:=1 to 4 do begin p:=p*(x-1); y:=y+p; end; writeln(y); |
г) |
readln(x); y:=1; p:=1; for i:=1 to 4 do begin p:=-p/x; y:=y+p; end; writeln(y); |
Следующий раздел:
Предыдущий раздел:
Правильно ли я поняла 2-е задание?
Ответ, рекуррентное соотношение для данной последовательности: X(n+1) = Xn * Xn, X1 = 2 ;
Программа для проверки:
program zadacha_2a;
var
i, x: integer;
begin
write (‘2, ‘); {первый член последовательности}
x:=2;
for i:=2 to 4 do
begin
x:=x*x;
write (x, ‘, ‘);
end;
write (‘…’);
end.
В 2 г никак не получается менять знак на «минус» с помощью рекуррентного соотношения, а не с помощью команд. Дайте волшебного пинка )
>> Правильно ли я поняла 2-е задание?
Правильно
>> В 2 г никак не получается менять знак на «минус»
Проще всего сделать двумерное рекуррентное соотношение, где одна из переменных будет отвечать за чередующийся знак.
Одномерным тоже можно обойтись, но оно будет довольно хитрым.
Спасибо за «пинок», вспомнила о модуле )
Ответ в 2г, рекуррентное соотношение для данной последовательности: X(n+1) = |Xn | * (-Xn), X1 = 2 ;
Программа для проверки:
program zadacha_2g;
var
i, x: integer ;
begin
write (‘2, ‘); {первый член последовательности}
x:=2;
for i:=2 to 4 do
begin
x:=abs(x)*(-x);
write (x, ‘, ‘);
end;
write (‘…’);
end.
Можно ли 3а выразить таким рекуррентным соотношением?
X(n+1) = -Xn * X + X, X1 = X;
А программа под это соотношение отличается у меня, хотя результат такой же:
program zadacha_3a;
var
i, x, y: integer;
begin
readln(x);
writeln (x); {первый член последовательности}
y:=x;
for i:=2 to 3 do
begin
y:=(-y)*x+x;
writeln (y);
end;
end.
В 3а предполагалось тривиальное:
но твой вариант красив и тоже правилен.
Извините, Тарас, но или я что-то недопонимаю, или в третьей строчке должно быть Y(n+1)=Yn+Sn*P(n+1). Там же берется результат первого уравнения, а не его исходное значение Pn?
Или условие 3а должно выглядеть так:
readln(x);
y:=0;
p:=1;
sgn:=1;
for i:=2 to 4 do
begin
y:=y+sgn*p;
sgn:=-sgn;
p:=p*x;
end;
writeln(y);
>> в третьей строчке должно быть Y(n+1)=Yn+Sn*P(n+1)
Можно и так и так. Только разные начальные значения подставлять: p(0) = 1 — твой вариант, p(0) = x — мой.