1. в учебном заведении 800 учащихся, коды которых записаны в информационной системе с минимального количества бит. каков информационный объем сообщения о кодах 320 учащихся, присутствующих на конференции?
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 кодируются одинаково, но там есть спец коды-регистры, определяющие, ЧТО будет идти за ними. И вообще оптимальное кодирование - это целая сложная наука, использующая самые последние достижения математики.
10(10) =2^3+2^1=1010(2) 15(10) = 2^3+2^2+2^1+2^0=8+4+2+1=1111(2) 1010(2) в обратном коде - изменяете 0 на 1, 1 на 0 -> 11110101(2) - обратный код дополнительный код - это к обратному добавить 1 -> 11110110(2) - дополнительный код отрицательные числа хранятся в дополнительном коде 15(10) = 1111(2), обратный код к 1111(2) будет 11110000(2), дополнительный - 11110001(2) -15(10) = 11110001(2), дополнительный код к -15(10) будет само число 15 обратный к -15(2) -> 00001110(2) , добавляем 1 -> 00001110(2) +1 = 00001111(2) = 15(10)
// PascalABC.Net 3.0, сборка 1066 var s,s1:string; i:integer; a:char; begin Write('Введите натуральное число любой длины :'); Readln(s); Write('Введите цифру, которую надо удалить: '); Readln(a); s1:=''; for i:=1 to Length(s) do if s[i]<>a then s1:=s1+s[i]; Writeln('Результат: ',s1) end.
Тестовый прогон: Введите натуральное число любой длины :3141592653589793 Введите цифру, которую надо удалить: 5 Результат: 3141926389793
2. Современное решение (так в школе почему-то не учат)
// PascalABC.Net 3.0, сборка 1066 begin var s:=ReadString('Введите натуральное число любой длины :'); var a:=ReadChar('Введите цифру, которую надо удалить: '); Write('Результат: ',s.Replace(a,'')); end.
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 кодируются одинаково, но там есть спец коды-регистры, определяющие, ЧТО будет идти за ними. И вообще оптимальное кодирование - это целая сложная наука, использующая самые последние достижения математики.
Успехов!