В изображение можно закодировать ЛЮБУЮ информацию. Начнём с того, что в изображение можно легко спрятать GEO-тег, можно из фотографии сделать архив (переименовав в .rar/.7z), можно спрятать водяной знак, нарисовать лишние пиксели, которые при сравнении с такой же фотографией без пикселей выдадут надпись, можно закодировать пиксели двух цветов в байты и тому подобное.
2. ТекстТут много рассуждать не нужно. Очень и ОЧЕНЬ много существует для кодирования текста. Начиная от банального шифра Цезаря, замены (меняем любую букву на другую; чтобы раскодировать такое, придётся использовать частотный анализ) заканчивая Base 16/32/64, Hex, Atom128, URI, Decimal, Morse, Hackerize XS, бинарным кодом, TIGO-3FX, ZONG22, MD5 и тому подобным.
3. Видео и АудиоЧаще всего приходится разбивать видео и аудио на отдельные фрагменты и действовать по ситуации, возвращаясь в первый пункт. Что касаемо аудио чаще всего используют методы кодировки LSB, чётного кодирования и эхо-метода.
2 ЗаданиеBase64 ⇔ 0KXQm9CV0JE=
Hex (0x) ⇔ 0xd00xa50xd00x9b0xd00x950xd00x91
Scrypt (N = 16384, r = 8, p = 1, length = 64) ⇔ 7e3d4adfbf6c14fbca16b0d55ef48cd21636c0fa50018c91fc0113f07533a146c36e34c1913c3bdb0ea55e709929749327a5640aa7213fdf9c23c40e039b9070
3 заданиеПусть на один символ приходится 2 байта, тогда всего в пословице 47 символов (включая точку и пробелы) * 2 байта = 94 байта
4 ЗаданиеНужно найти количество битов, которое не будет превышать 14, но и не будет меньше.
2¹ = 2, 2² = 4, 2³ = 8, 2⁴ = 16. Дальше считать не нужно, ведь для 14 видов товара хватит 4 бита.
5 ЗаданиеДля начала нам нужно определить, в каких системах счисления присутствует тройка:
Двоичная (0, 1) - нет, троичная (0, 1, 2) - нет, восьмеричная (0, 1, 2, 3, ..., 8) - да, 12-ная (0, 1, 2, 3, ..., A, B) - да, 16-ная (0, 1, 2, 3, ..., E, F) - да. Думаю, этих систем хватит сполна. Как видим, нам подходят только 8-ная, 12-ная и 16-ная. Очевидно, что любое десятичное число (10-ной системой счисления), оканчивающееся на 3 будет в любой другой подходящей системе оканчиваться на 3.
program HelloWorld;
var n:array [1..6] of string;
var i,k,j: smallint;
begin
n[1] := '1+';
n[2] := '2+';
n[3] := '3+';
n[4] := '4+';
n[5] := '5+';
n[6] := '6';
k := 0;
for i:=1 to 6 do
if pos('+',n[i]) > 0 then k := k + 1;
if k>4 then
for i:=1 to 6 do
begin
j := pos('+',n[i]);
if j > 0 then
begin
delete(n[i],j,1);
insert('=',n[i],j);
end;
end;
for i:=1 to 6 do
writeln(n[i]);
end.