Var
a: array [1..100] of integer;
i: integer;
b: Int64 := 1;
begin
for i := 1 to 100 do
begin
a[i] := random(-2, 20);
write(a[i], ' ');
end;
writeln();
for i := 1 to 100 do
begin
b *= (a[i] < 0 ? abs(a[i]) : 1);
end;
writeln(b <= 100, '(', b, ')');
<span>end.</span>
Подсчитаем количество цифр на каждом входе/выходе, и заметим, что на выходе цифр всегда ровно вдвое больше, чем на входе. Можно сделать предположение, что каждая цифра на входе шифруется комбинацией из двух цифр на выходе.
Проверяем наше предположение:
2 -> 10 (первый вход). То же самое верно для 3-го и 4-го входов, и для последней цифры 6-го.
Проверяя другие числа, убедимся, что предположение верное.
Значит, чёрный ящик шифрует числа по схеме:
0 -> 00
1 -> 01
2 -> 10
3 -> 11
4 -> 02
5 -> 20
6 -> 22
7 -> 03
8 -> 30
9 -> 33
Поскольку об оценке ничего не говорится, можно только оперировать средним количеством информации для случая неравновероятных событий. А это формула Шеннона.
1. Определяем вероятности получения оценок.
Общее количество оценок равно 5+10+6+4 = 25.
Вероятность получения пятерки составляет 5/25 = 0.2
Четверки - 10/25 = 0.4, тройки 6/25 = 0.24, двойки 4/25 = 0.16.
На всякий случай проверим сумму вероятностей - должна получиться единица. 0.2+0.4+0.24+0.16 = 1. Все верно
2. Подставляем значения в формулу Шеннона
Ответ: приблизительно 1.91 бита
5 байт=40 бит
8 килобайт=8192 байт
1 мегабайт=131072 байт
88 бит=11 байт
<span>5120 терабайт =5242880 гигабайт</span>
Сохранить/Сохранить как...