Клиенту необходимо правильно принять переданное ему сообщение.
сообщение состоит из последовательности, составленной из букв a-p.
при передаче сообщения каждая буква кодируется байтом (последовательностью 8 бит), которые и по каналу.
в процессе передачи и приема в канале могут возникать ошибки.
частота появления ошибок в канале постоянна. ошибкой считается случайное изменение какого-нибудь бита с 0 на 1 или с 1 на 0. таким образом принимается не всегда тот код, который был передан.
при декодировании принятого сигнала выбирается та буква, код которой наиболее близок к принятому коду в смысле расстояния хэмминга.
необходимо написать программу, которая определяет, как изменить шифр так, чтобы максимально повысить его устойчивость к шуму, изменив кодовое представление только одной буквы. на вход программы подается весь шифр, на выходе она выдает значение буквы, и какой код ей должен соответствовать.
в случае, если существует несколько самых эффективных решений следует выдать любое из них.
формат примеров входных файлов
символ код
a 0
b 231
c 15
p 71
var x: array[1..nx, 1..nx] of integer;z:array[1..nx*2] of integer;
i, j, k,n,r,t: integer;
begin
Writeln('Введите размер матрицы n');Read(n);
for i := 1 to n do begin
for j := 1 to n do begin
Read(k);x[i, j] := k; end;end;
Writeln('Исходный массив');
for i := 1 to n do begin
for j := 1 to n do begin
Write(x[i, j]:4);
if x[i, j]>0 then begin t:=t+1; z[t]:=x[i, j];end;
end;
Writeln; end;
Writeln;Writeln('Одномерный массив');
for j := 1 to t do
Write(z[j]:4);
end.
begin
var s:=ReadLnString('Вводите:');
s.ToWords.Where(x->x=ReverseString(x)).PrintLn;
end.
Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган и с в шалаш
Вариант, если исключить однобуквенные:
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
var s:=ReadLnString('Вводите:');
s.ToWords.Where(x->x=ReverseString(x)).
Where(x->x.Length>1).PrintLn;
end.
Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган шалаш