Коротко: ответ зависит от количества символов в алфавите каждого поля. Приведу решение с учетом общего предполагаемого набора.
Пусть:
- Login (логин): 30 символов. Разрешены: латинские буквы 26 + цифры 10 + точка + знак подчеркивания = 38 символов.
- Domain (домен): 10 символов. Та же база 38 символов.
- FIO: 60 символов. Русские буквы (строчные+заглавные) — 66 вариантов, пробел и дефис — 2 варианта, итого 68 вариантов.
- ID: число от 1 до 2000 (2000 вариантов).
- Биты на символ и байты на поле
- ID: требуется ceil(log2(2000)) = 11 бит. Это 2 байта.
- Login: 38 вариантов, ceil(log2(38)) = 6 бит на символ. 30 символов × 6 бит = 180 бит = 22.5 байта → минимально 23 байта.
- Domain: 10 символов × 6 бит = 60 бит = 7.5 байта → минимально 8 байт.
- FIO: 68 вариантов, ceil(log2(68)) = 7 бит на символ. 60 символов × 7 бит = 420 бит = 52.5 байта → минимально 53 байта.
- Сумма для одного пользователя
- ID: 2 байта
- Login: 23 байта
- Domain: 8 байт
- FIO: 53 байта Итого за одного пользователя: 2 + 23 + 8 + 53 = 86 байт.
- Для 30 пользователей 30 × 86 = 2580 байт.
Ответ: 2580 байт.
Примечание: если в русском алфавите не учитывать Ё (то есть всего 32 буквы, 64 варианта на латинизированном наборе), то для FIO было бы 60 символов × 6 бит = 360 бит = 45 байт, итоговый размер для одного пользователя — 78 байт, и для 30 пользователей — 2340 байт. Однако в стандартном варианте часто принимают 33 буквы русского алфавита (Ё учитывается), т.е. 68 вариантов и 7 бит на символ, как в расчете выше.