type
Str = record
fio: string;
h: byte;
end;
var
base: array of Str;
i,sum,n,err:integer;
begin
write('Число учеников: '); readln(n);
setlength(base,n);
sum:=0;
writeln('Введите фамилию и рост через "space": ');
for i:=0 to n-1 do
begin
write(i+1:4,'. ');
readln(base[i].fio);
val(copy(base[i].fio,
pos(' ',base[i].fio)+1,
length(base[i].fio)-pos(' ',base[i].fio)),
base[i].h,
err);
delete(base[i].fio,
pos(' ',base[i].fio),
length(base[i].fio));
sum:=sum+base[i].h;
end;
writeln('Средний рост: ',sum/n:4:1);
for i:=0 to n-1 do
if base[i].h<sum/n then
writeln(base[i]);
end.
1. Во втором письме содержится меньшее количество информации на 5 500 бит
2. 256 секунд
Объяснение:
1.
I = К * i, где
I - информационный объём письма (документа)
К - количество символов в письме (документе)
i - информационный вес символа (количество бит, которым кодируется 1 символ)
N = 2^i, где
N - мощность алфавита (количество символов в алфавите)
i - информационный вес символа (количество бит, которым кодируется 1 символ)
Дано:
K₁ = 25 строк * 50 символов = 1 250 символов
N₁ = 256 символа
K₂ = 2 страницы * 15 строк * 30 символов = 900 символов
N₂ = 32 символа
Найти:
I ₁ - I₂
256 = 2^i ₁
i₁ = 8 бит
32 = 2^i ₂
i₂ = 5 бит
I₁ = 1 250 * 8 = 10 000 бит
I₂ = 900 * 5 = 4 500 бит
I ₁ - I₂ = 10 000 - 4 500 = 5 500 бит
2.
I = К * i, где
I - информационный объём сообщения (документа)
К - количество символов в сообщении (документе)
i - информационный вес символа (количество бит, которым кодируется 1 символ)
К = V * t, где
K - количество символов в сообщении (документе)
V - скорость печати принтера
t - время печати принтера
Дано:
V = 1 024 символа/с
I = 256 Кбайт = 262 144 байт
i = 1 байт (предположительно)
Найти:
t
I = К * i
К = I / i
К = 262 144 / 1 = 262 144 символов
К = V * t
t = К / V
t = 262 144 / 1 024 = 256 секунд
1 Кбайт = 1024 байт
Методом подбора нашёл (на Питоне):
a = '0333333333322222111111111111111111111111111111111111111111111'
print(a)
while a.find('01') != -1 or a.find('02') != -1 or a.find('03') != -1:
a=a.replace('01', '30')
a=a.replace('02','101')
a=a.replace('03','202')
print(a)
print(f'1 = {a.count(str(1))}')
print(f'2 = {a.count(str(2))}')
print(f'3 = {a.count(str(3))}')
Получается, после первого нуля каждая цифра 3 увеличивает количество результирующих 1 2 и 3 на 1 по каждой:
a = '03'
2130
1 = 1
2 = 1
3 = 1
a='033'
2132130
1 = 2
2 = 2
3 = 2
И так далее. Следовательно, я набрал 10 двоек с десяти цифр 3 после первого нуля.
Далее, если после тройки идёт двойка, то увеличивается количество цифр 1 и 2:
a = '033333333332'
213213213213213213213213213213130
1 = 11
2 = 10
3 = 11
Набрал 5 двоек, чтобы получилось 15 единиц. Ну и далее, цифра 1 в конце добавляет количество единиц в результате, то есть чтобы получилось 60 единиц, я к 15 добавил 45:
a = '0333333333322222111111111111111111111111111111111111111111111'
21321321321321321321321321321313131313133333333333333333333333333333333333333333333330
1 = 15
2 = 10
3 = 60
ОТВЕТ: 45 единиц!