Кузнечик сидит в точке 0. Будем считать, что количество как попасть в точку ноль - 1.
У нас всего 6 кочек, 6 - конечная. Мы перемещаемся либо на последующую (+1), либо через одну (+2), либо через две (+3). То есть если мы были на кочке один и прыгнули через две кочки, то попадем в кочку 4 (1 + 3).
Начнём считать. 0 - мы на первом берегу. Наши кочки: 1, 2, 3, 4, 5 и 6 обозначены СЛЕВА. 7 этапом мы прыгнем на другой берег.
Всего существует как перебрать на другой берег болота.
P.S. В квадратных скобка [] обозначены индексы из каких точек мы можем попасть в эту точку. Достаточно сложить количество путей тех точек и мы получим количество путей для данной точки.
const n=5; var a:array[1..n,1..n] of integer; x:array[1..n] of double; i,j,k:byte; begin Randomize; Writeln('*** Исходный массив ***'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(51)-25; Write(a[i,j]:4) end; Writeln end; Writeln('*** Массив x ***'); for j:=1 to n do begin x[j]:=0; k:=0; for i:=1 to n do if a[i,j] mod 2=0 then begin x[j]:=x[j]+a[i,j]; Inc(k) end; if k>0 then x[j]:=x[j]/k; Write(x[j]:0:5,' ') end; Writeln end.
У нас всего 6 кочек, 6 - конечная.
Мы перемещаемся либо на последующую (+1), либо через одну (+2), либо через две (+3). То есть если мы были на кочке один и прыгнули через две кочки, то попадем в кочку 4 (1 + 3).
Начнём считать.
0 - мы на первом берегу. Наши кочки: 1, 2, 3, 4, 5 и 6 обозначены СЛЕВА. 7 этапом мы прыгнем на другой берег.
1: [0] = 1 сп.
2: [0,1] = 1 + 1 = 2 сп.
3: [0,1, 2] = 1 + 1 + 2 = 4 сп.
4: [1, 2, 3] = 1 + 2 + 4 = 7 сп.
5: [2, 3, 4] = 2 + 4 + 7 = 13 сп.
6: [3, 4, 5] = 4 + 7 + 13 = 24 сп.
7: [4, 5, 6] = 7 + 13 + 24 = 44 сп.
Всего существует как перебрать на другой берег болота.
P.S. В квадратных скобка [] обозначены индексы из каких точек мы можем попасть в эту точку. Достаточно сложить количество путей тех точек и мы получим количество путей для данной точки.
const
n=5;
var
a:array[1..n,1..n] of integer;
x:array[1..n] of double;
i,j,k:byte;
begin
Randomize;
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4)
end;
Writeln
end;
Writeln('*** Массив x ***');
for j:=1 to n do begin
x[j]:=0; k:=0;
for i:=1 to n do
if a[i,j] mod 2=0 then begin
x[j]:=x[j]+a[i,j]; Inc(k)
end;
if k>0 then x[j]:=x[j]/k;
Write(x[j]:0:5,' ')
end;
Writeln
end.
Тестовое решение:
*** Исходный массив ***
-10 18 -8 -15 5
-21 -18 6 -2 9
-7 22 -4 3 14
21 16 -10 -18 -9
17 3 -14 -18 12
*** Массив x ***
-10.00000 9.50000 -6.00000 -12.66667 13.00000