Динков
?>

Определите ключи шифра цезаря, если известны следующие пары открытый текст – шифротекст (исходный алфавит: ): oапельсин - твчюодыа

Информатика

Ответы

vitaliy
Ну тут совсем всё просто:
Смотрим на входные данные, исходное слово "апельсин", а зашифрованное "твчюодыа".
Вспоминаем принцип шифра "Цезаря", что бы зашифровать текст, необходимо определить сдвиг по алфавиту, так называемый "корень". То есть, если корень равен 3, то все буквы А в исходном послании заменятся на (сдвигаемся по алфавиту на 3 буквы вправо) букву Г. Но что делать если мы шифруем букву Ю? Считаем сдвиг Ю - Я это 1, а дальше просто "прыгаем" в начало алфавита Я - А это 2, А - Б это 3, следовательно при ключе 3 буква Ю станет буквой Б.
В нашем случаи все что нужно, так это проверить, на сколько букв сместилась буква "а", в слове "апельсин", что превратилась в букву "т", в слове "твчюодыа".
Смотрим по даному алфавиту и считаем количество сдвигов, это будет 19. Теперь провевим, что если сдвинуть остальные буквы в слове апельсин на 19 символов вправо по алфавиту, если они будут соответствовать зашифрованым, то мы нашли корень правильно.
В нашем случаи именно так и есть, то есть ответ задачи ключь = 19.
kozak8824
Program lab3;const n=10;                   {количество элементов в массиве}
var   A:array [1..n] of real;          {объявление массива А}   i:byte;                                  {переменная для циклов}   b:boolean;                           {идентификатор роста}begin     writeln('vvedite tselie chisla matrici A[',n,',',n,']');     for i:=1 to n do begin                  {циклвводавмассив}         write('A[',i,'] = ');         readln(A[i]);     end;     writeln;     writeln('matraca imeet vid: ');     for i:=1 to n do begin                  {циклвыводамассива}         write(A[i]:3:3,'  ');        end;     writeln;     b := true;     for i:=1 to n-1 do               {цикл определения роста}          if (A[i] > A[i+1]) then begin  {если текущий больше следующего}             b := false;                                     {значит масив невозростающий}             break;          end;     if (b) then writeln('Masiv A - vozrostaushaya posledovatelnost''')     else writeln('Masiv A - ne vozrostaushaya posledovatelnost''');     readln;
kovansckaya201313
Var
 A:array[1..4] of integer;
 i,j,R,P:integer;
function HOD(c,b:integer):integer;
 begin
  while c<>b do
   if c>b
     then
      c:=c-b
    else
     b:=b-c;
  HOD:=c;
 end;
function HOK(c,b, RR:integer):integer;
 begin
  if ((c mod b=0) or (b mod c=0)) and ((c div b > 1) or (b div c > 1))
   then
     begin
       if c>b
          then
           HoK:=c
         else
          HOK:=b;
     end
    else
     HOK:=(c*b) div RR;
 end;
begin
 A[1]:=36;
 A[2]:=54;
 A[3]:=18;
 A[4]:=15;
 P:=1;
 R:=HOD(A[1],A[2]);
 P:=HOK(A[1], A[2], R);
 for i:=3 to 4 do
  begin
   R:=HOD(R, A[i]);
   P:=HOK(P, A[i],R);
  end; writeln('HOK = ',P);
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Определите ключи шифра цезаря, если известны следующие пары открытый текст – шифротекст (исходный алфавит: ): oапельсин - твчюодыа
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

valeron7hair7
dpolkovnikov
anton
zotcet7
yurievaalxndra55
Versalmoda
sryzhova6392
Kochinev4
nadezhdasvirina
Linichuk
kondrashovalf6404
rodin4010
gavrilasmax05
гайсанов
Nikolaevich-Svetlana388