nikolavlad
?>

Алиса и Боб любят шпионское кино, и они решили придумать шифр, благодаря которому они смогут кодировать свои сообщения, чтобы никто не узнал, о чем они говорят. Друг Алисы и Боба, Чак узнал, как работает шифр Алисы и Боба, и узнал, какой ключ используется. Ключом является 44-значное число, записанное в десятичной системе счисления. Чак знает ключ, который будет в момент времени 00:0000:00. Каждые 1515 минут ключ меняется по следующему правилу: Пусть XX – ключ в момент времени суток 00:0000:00, через 1515 минут новый ключ NEW_X = (X + 2764)(X+2764) MOD 1000010000 Операция AA MOD BB вычисляет остаток от деления числа AA на число BB Ещё через 1515 минут за XX будет взят действующий ключ и произведена та же операция с ключом. Как происходит кодирование сообщений: Исходный ключ, состоящий из 44 цифр – ABCDABCD – делится на 22 пары цифр: ABAB и CDCD, образующих два новых числа. Затем из каждого числа получается одно число: AA’ = ABAB MOD 2626, BB’ = CDCD MOD 2626 Полученные два числа соответствую двум буквам латинского алфавита (нумерация букв в алфавите идет с нуля по возрастанию Далее к исходному сообщению применяется шифр, в ходе которого буква из алфавита под номером AA’ заменяется на букву из алфавита под номером BB’, буква под номером AA’+1+1 заменяется на букву под номером BB’+1+1, и так далее. Если окажется, что номер очередной буквы больше, чем 2525, то из него вычитается 2626. Пример: В 00:0000:00 ключ равен 17031703, через 1515 минут ключ поменяется на 44674467. AA’ == 4444 MOD 2626 == 1818, BB’ == 6767 MOD 2626 == 1515 Пусть исходное сообщение было ABACABAABACABA, тогда зашифрованное сообщение будет записано как XYXZXYXXYXZXYX. В 00:0000:00 ключом является число 17031703, а в 01:4001:40 Чак перехватил сообщение Алисы с одним словом: gtsotzw Чаку стало интересно, что же Алиса написала Бобу Чаку расшифровать данное сообщение. В ответе укажите только слово прописными латинскими буквами.

Информатика

Ответы

janepustu
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
procedure MatrixPrint(a:array[,] of integer);
begin
  for var i:=0 to Length(a,0)-1 do begin
    for var j:=0 to Length(a,1)-1 do Print(a[i,j]);
    Println
    end
end;

function RowSum(a:array[,] of integer):array of integer;
// суммы построчно
begin
  SetLength(Result,Length(a,0));
  for var i:=0 to Length(a,0)-1 do begin
    var s:=0;
    for var j:=0 to Length(a,1)-1 do
      s+=a[i,j];
    Result[i]:=s
    end
end;

function ColSum(a:array[,] of integer):array of integer;
// суммы по столбцам
begin
  SetLength(Result,Length(a,1));
  for var j:=0 to Length(a,1)-1 do begin
    var s:=0;
    for var i:=0 to Length(a,0)-1 do
      s+=a[i,j];
    Result[j]:=s
    end
end;

begin
  var n:=ReadInteger('N=');
  var m:=ReadInteger('M=');
  var x:=MatrixRandom(n,m,1,5);
  Writeln('Исходный массив');
  MatrixPrint(x);
  var srow:=RowSum(x);
  var ir:=0;
  for var i:=1 to srow.Length-1 do
    if srow[i]>srow[ir] then ir:=i;
  WritelnFormat('Максимум {0} в строке {1}',srow[ir],ir+1);
  var scol:=ColSum(x);
  var ic:=0;
  for var i:=1 to scol.Length-1 do
    if scol[i]<scol[ic] then ic:=i;
  WritelnFormat('Минимум {0} в колонке {1}',scol[ic],ic+1)
end.

Тестовое решение:
N= 8
M= 5
Исходный массив
3 3 3 2 4
2 4 2 2 1
1 1 2 4 5
5 1 4 1 5
4 2 3 3 4
2 3 2 4 2
5 3 4 1 1
4 3 4 4 2
Максимум 17 в строке 8
Минимум 20 в колонке 2

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

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

Алиса и Боб любят шпионское кино, и они решили придумать шифр, благодаря которому они смогут кодировать свои сообщения, чтобы никто не узнал, о чем они говорят. Друг Алисы и Боба, Чак узнал, как работает шифр Алисы и Боба, и узнал, какой ключ используется. Ключом является 44-значное число, записанное в десятичной системе счисления. Чак знает ключ, который будет в момент времени 00:0000:00. Каждые 1515 минут ключ меняется по следующему правилу: Пусть XX – ключ в момент времени суток 00:0000:00, через 1515 минут новый ключ NEW_X = (X + 2764)(X+2764) MOD 1000010000 Операция AA MOD BB вычисляет остаток от деления числа AA на число BB Ещё через 1515 минут за XX будет взят действующий ключ и произведена та же операция с ключом. Как происходит кодирование сообщений: Исходный ключ, состоящий из 44 цифр – ABCDABCD – делится на 22 пары цифр: ABAB и CDCD, образующих два новых числа. Затем из каждого числа получается одно число: AA’ = ABAB MOD 2626, BB’ = CDCD MOD 2626 Полученные два числа соответствую двум буквам латинского алфавита (нумерация букв в алфавите идет с нуля по возрастанию Далее к исходному сообщению применяется шифр, в ходе которого буква из алфавита под номером AA’ заменяется на букву из алфавита под номером BB’, буква под номером AA’+1+1 заменяется на букву под номером BB’+1+1, и так далее. Если окажется, что номер очередной буквы больше, чем 2525, то из него вычитается 2626. Пример: В 00:0000:00 ключ равен 17031703, через 1515 минут ключ поменяется на 44674467. AA’ == 4444 MOD 2626 == 1818, BB’ == 6767 MOD 2626 == 1515 Пусть исходное сообщение было ABACABAABACABA, тогда зашифрованное сообщение будет записано как XYXZXYXXYXZXYX. В 00:0000:00 ключом является число 17031703, а в 01:4001:40 Чак перехватил сообщение Алисы с одним словом: gtsotzw Чаку стало интересно, что же Алиса написала Бобу Чаку расшифровать данное сообщение. В ответе укажите только слово прописными латинскими буквами.
Ваше имя (никнейм)*
Email*
Комментарий*

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

Elenazhukovafashion7
ann-perminova2008
Golubitskaya378
Valentina
druzhbamagazin2457
Shurshilina850
kifstd
tany821
Alekseevna
thedoomsdatdcs36
nash-crimea2019
barnkim
misie1974
Тоноян
yurkovam-037