1. Сначала нужно найти минимальную длину кода, который позволит занумеровать 800 человек. Понятно, что
800<2^n, где n - минимально.
Ясно, что n=10, потому что
512=2^9 < 800 < 2^10=1024
Ну а теперь совсем просто. Учащихся 320, код каждого 10бит, поэтому общий объём информации
320*10=3200бит = 3200/8 = 400байт.
Вот и всё.
Ну и ещё. 1. Понятно, что такую кодировку можно использовать, пока учащихся меньше 1025.
2. Приведенные рассуждения действительны для кодов одинаковой длины, существуют и другие коды, например, разной длины, самым известным представителем которой является код(азбука) Морзе. В этой кодировке, например, коды
1, 01, 001, 0001 - РАЗНЫЕ коды.
3. Из условия задачи не ясно, о какой кодировке идёт речь, но если о другой, то количество информации тоже несложно посчитать, правда, необходимо, например, зарезервировать какой-то код для разделителя, отделяющего один код от другого(у Морзе это немного более длинная пауза между символами, чем между 0 1(точкой и тире). Существуют и другие коды, например Брайля(для слепых), в котором, например РАЗНЫМ объектам соответствуют ОДИНАКОВЫЕ коды, напрмер, буквы А,Б,Ц,Д и цифры 1,2,3,4 кодируются одинаково, но там есть спец коды-регистры, определяющие, ЧТО будет идти за ними. И вообще оптимальное кодирование - это целая сложная наука, использующая самые последние достижения математики.
Успехов!
Program zadacha;
Var x,y,z,ans:Int64;
Begin
ReadLn(x,y,z);
If (x>0) and (y>0) and (z>0) then Inc(ans);
If (ans=0) then WriteLn('Такой треугольник построить нельзя') else begin
Write('Такой треугольник можно построить');
If(x=y) xor (x=z) xor (y=z) then Write(', он будет равнобедренным') else
If(x=y) and (x=z) and (z=y) then Write(', он будет равносторонним')else
If(x=y) xor (x=z) xor (y=z) then Write(', он будет равнобедренным');
If (sqr(x)+sqr(y)=sqr(z)) or (sqr(y)+sqr(z)=sqr(x)) or (sqr(z)+sqr(x)=sqr(y)) then
write(', он будет прямоугольным.') else
If(sqrt(sqr(x)+sqr(y))>z) xor (sqrt(sqr(z)+sqr(y))>x) xor (sqrt(sqr(x)+sqr(z))>y) then Write(', он будет остроугольным.')
else write(', он будет тупоугольгым.');
end;
End.
ps: не забудь пометить как лучшее решение