Const n=20; var a:array[1..n] of integer; i,k,m:integer; begin Randomize; writeln('Массив A:'); for i:=1 to n do begin a[i]:=random(51); write(a[i]:3); end; writeln; k:=0; m:=0; for i:=1 to n-1 do begin if a[i+1]>a[i] then begin m:=m+1; end else begin if m>0 then k:=k+1; m:=0; end; end; if m>0 then k:=k+1; writeln('k = ',k); end.
V=K*I; V - объем сообщения K - количество символов в сообщении I - вес одного символа; N=2^I, где N мощность алфавита (N≤32 ⇒ I≤5); V₁=V₂ (объёмы сообщений); 2,5*K₁ = K₂ V₁=K₁*I₁; V₂=K₂*I₂=2,5*K₁*I₂; приравняем объёмы K₁*I₁=2,5*K₁*I₂ ⇒ I₁ = 2,5*I₂ решим уравнение в целых числах, учитывая, что любое I≤5 ( можно подставлять числа для I₁ от 1 до 5 и найти то решение, при котором I₂ - целое число); у меня получилось I₁ = 5; I₂=2 т.к. 5=2,5*2 нам нужны мощности 1го и 2го алфавитов N₁=2^I₁=2⁵=32 символа; N₂=2^I₂=2²=4 символа.
okison2847
31.01.2023
V=K*I; V - объем сообщения K - количество символов в сообщении I - вес одного символа; N=2^I, где N мощность алфавита (N≤32 ⇒ I≤5); V₁=V₂ (объёмы сообщений); 2,5*K₁ = K₂ V₁=K₁*I₁; V₂=K₂*I₂=2,5*K₁*I₂; приравняем объёмы K₁*I₁=2,5*K₁*I₂ ⇒ I₁ = 2,5*I₂ решим уравнение в целых числах, учитывая, что любое I≤5 ( можно подставлять числа для I₁ от 1 до 5 и найти то решение, при котором I₂ - целое число); у меня получилось I₁ = 5; I₂=2 т.к. 5=2,5*2 нам нужны мощности 1го и 2го алфавитов N₁=2^I₁=2⁵=32 символа; N₂=2^I₂=2²=4 символа.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Написать программу в паскале. дан массив размера n. 1. найти количество участков к, на которых его элементы монотонно возрастают.
var a:array[1..n] of integer;
i,k,m:integer;
begin
Randomize;
writeln('Массив A:');
for i:=1 to n do
begin
a[i]:=random(51);
write(a[i]:3);
end;
writeln;
k:=0; m:=0;
for i:=1 to n-1 do
begin
if a[i+1]>a[i] then begin m:=m+1; end
else begin if m>0 then k:=k+1; m:=0; end;
end;
if m>0 then k:=k+1;
writeln('k = ',k);
end.
Пример:
Массив A:
7 30 22 0 17 4 2 32 39 26 23 41 1 38 47 21 38 31 43 7
k = 7