Может быть использовано
10 цифр+ 26 строчных букв + 26 прописных + 6 спец символов = 68 символов всего.
Для кодирования 68ми символов достаточно диапазона чисел от 0 до 67
(2^6=64)<67<(2^7=128)
Таким образом необходимо минимум 7 бит на символ.
7*9=63 бита на один пароль.
63*100=6300 битов на 100 паролей.
6300/8 = 787,5 байт.
Округляем в большую сторону - ответ 788 байт
Const
ru : array[1..33] of Char = ('а','б','в','г','д','е','ё','ж','з','и',
'й','к','л','м','н','о','п','р','с','т',
'у','ф','х','ц','ч','ш','щ','ъ','ы','ь',
'э','ю','я');
en : array[0..33] of String = (' ','a','b','v','g','d','e','ye','zh','z','i',
'y','c','l','m','n','o','p','r','s','t',
'u','f','h','c','ch','sh','sch','`','ы','',
'ea','yu','ja');
{ транскрипцию записал не заглядывая ни в какие справочники - можете кидаться тапками }
Function GetIndex(ss : Char) : Byte;
Var ii : Byte;
Begin
ii:=1;
While (ii<=33) and (LowerCase(ss)<>ru[ii]) do Inc(ii);
If ii in [1..33] then GetIndex:=ii else GetIndex:=0;
end;
Function Trans(S : String) : String;
Begin
If Length(S)>0 then Trans:=en[GetIndex(S[1])]+Trans(Copy(S,2,Length(S)-1))
else Trans:='';
end;
Begin
Writeln(Trans('паскаль'));
Writeln(Trans('ява'));
end.
Ответ:
Возможные значения: наименьшее 16 и наибольшее 31
Объяснение:
В двоичной системе счисления наименьшее пятизначное число 10000 и наибольшее пятизначное число 11111. Осталось перевести эти числа в десятичную систему счисления.
10000₂=1·2⁴+0+0+0+0=16₁₀
11111₂=1·2⁴+1·2³+1·2²+1·2¹+1·2⁰=16+8+4+2+1=31₁₀