В изображение можно закодировать ЛЮБУЮ информацию. Начнём с того, что в изображение можно легко спрятать 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.
#include <set>
using namespace std;
int main()
{
string s;
cin >> s;
set<char> s1 = {'a','e','i','o','u','y'};
set<char> s2 = {'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','z'};
int n1 = 0, n2 = 0;
for(int i=0; i<s.length(); i++) {
if(s1.find(s[i]) != s1.end()) n1++;
else if(s2.find(s[i]) != s2.end()) n2++;
}
cout << n1 << " " << n2 << "\n";
if (n1>n2) cout << "Гласных больше";
else if (n1<n2) cout << "Согласных больше";
else cout << "Кол-во гласных = кол-ву согласных";
return 0;
}
Пример:
program_var.
3 7
Согласных больше