Поскольку в сообщениях одинаковое количество символов, то К1=К2. Соотношение количества информации можно записать как I1=1.5*I2. Общее кол-во символов в алфавите обозначается буквой N, по условию N1<=10, N2<=10.
Решение: I1=K1*i1; I2=K2*i2; Подставим в условие I1=1.5*I2 значения I1 и I2. Получаем K1*i1=1.5*K2*i2
Сократим в обеих частях уравнения К1 и К2, у нас останется
i1=1.5*i2
По условию мощности обоих алфавитов не превышают число 10, запишем это так
10>=2 в степени i1
10>=2 в степени i2
Предположим, что i2=1 бит, тогда i1=1.5 бита (а это противоречит условию)
Предположим, что i2=2 бита, тогда i1=3 бита -это и есть ответ задачи
Если вводить с клавиатуры, то для чего использовать random? В программе ввод с клавиатуры отключен. const n=7; var t:array[1..n] of integer; sr,srp,sro:real; i,kp,ko:integer; begin Randomize; for i:=1 to n do begin // readln(t[i]); // ввод с клавиатуры t[i]:=random(7)-3; writeln(i,' - ',t[i]:2); end; sr:=0; srp:=0; sro:=0; kp:=0; ko:=0; for i:=1 to n do begin sr:=sr+t[i]; if t[i]>0 then begin srp:=srp+t[i]; kp:=kp+1; end; if t[i]<0 then begin sro:=sro+t[i]; ko:=ko+1; end; end; sr:=sr/n; srp:=srp/kp; sro:=sro/ko;writeln('Средняя температура недели = ',sr:5:2); writeln('Средняя положительная = ',srp:5:2); writeln('Средняя отрицательная = ',sro:5:2); end.
Запишем условие задачи:
Поскольку в сообщениях одинаковое количество символов, то К1=К2. Соотношение количества информации можно записать как I1=1.5*I2. Общее кол-во символов в алфавите обозначается буквой N, по условию N1<=10, N2<=10.
Решение: I1=K1*i1; I2=K2*i2; Подставим в условие I1=1.5*I2 значения I1 и I2. Получаем K1*i1=1.5*K2*i2
Сократим в обеих частях уравнения К1 и К2, у нас останется
i1=1.5*i2
По условию мощности обоих алфавитов не превышают число 10, запишем это так
10>=2 в степени i1
10>=2 в степени i2
Предположим, что i2=1 бит, тогда i1=1.5 бита (а это противоречит условию)
Предположим, что i2=2 бита, тогда i1=3 бита -это и есть ответ задачи
В программе ввод с клавиатуры отключен.
const n=7;
var t:array[1..n] of integer;
sr,srp,sro:real;
i,kp,ko:integer;
begin
Randomize;
for i:=1 to n do
begin
// readln(t[i]); // ввод с клавиатуры
t[i]:=random(7)-3;
writeln(i,' - ',t[i]:2);
end;
sr:=0; srp:=0; sro:=0;
kp:=0; ko:=0;
for i:=1 to n do
begin
sr:=sr+t[i];
if t[i]>0 then begin srp:=srp+t[i]; kp:=kp+1; end;
if t[i]<0 then begin sro:=sro+t[i]; ko:=ko+1; end;
end;
sr:=sr/n; srp:=srp/kp; sro:=sro/ko;writeln('Средняя температура недели = ',sr:5:2);
writeln('Средняя положительная = ',srp:5:2);
writeln('Средняя отрицательная = ',sro:5:2);
end.
Пример:
1 - -3
2 - 1
3 - -2
4 - 2
5 - 2
6 - -3
7 - 0
Средняя температура недели = -0.43
Средняя положительная = 1.67
Средняя отрицательная = -2.67