Клиенту необходимо правильно принять переданное ему сообщение.
сообщение состоит из последовательности, составленной из букв a-p.
при передаче сообщения каждая буква кодируется байтом (последовательностью 8 бит), которые и по каналу.
в процессе передачи и приема в канале могут возникать ошибки.
частота появления ошибок в канале постоянна. ошибкой считается случайное изменение какого-нибудь бита с 0 на 1 или с 1 на 0. таким образом принимается не всегда тот код, который был передан.
при декодировании принятого сигнала выбирается та буква, код которой наиболее близок к принятому коду в смысле расстояния хэмминга.
необходимо написать программу, которая определяет, как изменить шифр так, чтобы максимально повысить его устойчивость к шуму, изменив кодовое представление только одной буквы. на вход программы подается весь шифр, на выходе она выдает значение буквы, и какой код ей должен соответствовать.
в случае, если существует несколько самых эффективных решений следует выдать любое из них.
формат примеров входных файлов
символ код
a 0
b 231
c 15
p 71
b,c: string;
d,x,y: real;
i,j: integer;
begin
b:='ABCD'; c:='xy';
writeln('трапеция ABCD');
for i:=1 to 4 do
begin
writeln('координаты точки ',b[i],': ');
for j:=1 to 2 do
begin
write(' ',c[j],i,' = ');
readln(a[j,i]);
end;
end;
x:=(a[1,3]-a[1,2]+a[1,4]-a[1,1])/2;
y:=(a[2,3]-a[2,2]+a[2,4]-a[2,1])/2;
d:=sqrt(x*x+y*y);
writeln('длина средней линии: ',d:5:2);
end.
ввод - вывод
трапеция ABCD
координаты точки A:
x1 = 3
y1 = 2
координаты точки B:
x2 = 5
y2 = 5
координаты точки C:
x3 = 9
y3 = 5
координаты точки D:
x4 = 10
y4 = 2
длина средней линии: 5.50