Авиаперелеты
мистер фокс и мистер форд на каникулах собираются посетить волшебную страну. в этой стране ровно 9 городов, перемещаться между некоторыми из них можно на самолетах. один перелет от города к городу стоит 10 тугриков. мистер фокс и мистер форд играют в такую игру. мистер фокс загадывает сумму в тугриках (например, 20 тугриков), а мистер форд рисует карту авиалиний волшебной страны (на этой карте от каждого города можно добраться до каждого, но, возможно, что с пересадками). затем форд показывает свою карту фоксу. если фоксу удается проложить маршрут по карте так, чтобы облететь все города и уложиться в загаданную им сумму, то он выиграл. стартовый и конечный города фокс выбирает, как ему хочется. какую наименьшую сумму нужно загадывать мистеру фоксу, чтобы всегда выигрывать?
Объяснение:
Допустим, у нас есть сообщение «habr», которое необходимо передать без ошибок. Для этого сначала нужно наше сообщение закодировать при Кода Хэмминга. Нам необходимо представить его в бинарном виде.На этом этапе стоит определиться с, так называемой, длиной информационного слова, то есть длиной строки из нулей и единиц, которые мы будем кодировать. Допустим, у нас длина слова будет равна 16. Таким образом, нам необходимо разделить наше исходное сообщение («habr») на блоки по 16 бит, которые мы будем потом кодировать отдельно друг от друга. Так как один символ занимает в памяти 8 бит, то в одно кодируемое слово помещается ровно два ASCII символа. Итак, мы получили две бинарные строки по 16 битбит. распараллеливается, и две части сообщения («ha» и «br») кодируются независимо друг от друга. Рассмотрим, как это делается на примере первой части.
Прежде всего, необходимо вставить контрольные биты. Они вставляются в строго определённых местах — это позиции с номерами, равными степеням двойки. В нашем случае (при длине информационного слова в 16 бит) это будут позиции 1, 2, 4, 8, 16. Соответственно, у нас получилось 5 контрольных бит (выделены красным цветом)Таким образом, длина всего сообщения увеличилась на 5 бит. До вычисления самих контрольных бит, мы присвоили им значение «0».
ответ:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
Chislo, Count, Summa, n: integer;
begin
Summa := 0;
Count := 0;
readln(Chislo);
while Chislo > 0 do
begin
n := Chislo mod 10;
if odd(n) then
begin
Summa := Summa + n;
inc(Count);
end;
Chislo := Chislo div 10;
end;
writeln('Сумма нечетных цифр числа: ', Summa);
writeln('Кол-во нечетных цифр числа: ', Count);
writeln('Среднее арифметическое нечетных цифр: ', Summa / Count);
end.
Объяснение: