Для кодирования n символов требуется подобрать число, являющееся степенью двойки, большее или равное n. Степень двойки будет количеством бит, необходимых для кодирования одного символа.
Подберем подходящую степень:
не подходит
подходит, значит 6 - количество бит, необходимое для кодирования одного символа.
В пароле по условию 15 символов => потребуется 15*6=90 бит для кодирования всего пароля. Но "Каждый такой пароль в компьютерной системе записывается минимально возможным и одинаковым целым количеством байт". В одном байте, как известно, 8 бит. 90 на 8 не делится, а вот 96 как раз.
96/8 = 12 - минимально возможное количество байт для кодирования пароля. Так как 11 уже не подходит - в 11 байтах вместится всего 88 бит, а нам потребовалось 90.
Для 80 паролей объем памяти будет равен: 80 * 12 = 960 байт.
var
a: array of real;
b: array of real;
a_sum, b_sum, i, n: integer;
a_values, b_values: real;
begin
randomize;
writeln('Введите количество туров: ');
readln(n);
a := new real[n];
b := new real[n];
a_sum := 0;
b_sum := 0;
writeln('Введите результаты первого спортсмена: ');
for i := 0 to n - 1 do
begin
readln(a_values);
a[i] := a_values;
end;
writeln('Введите результаты второго спортсмена: ');
for i := 0 to n - 1 do
begin
readln(b_values);
b[i] := b_values;
end;
writeln('Результаты первого спортсмена: ');
for i := 0 to n - 1 do
write(a[i], ' ');
writeln(#10);
writeln('Результаты второго спортсмена: ');
for i := 0 to n - 1 do
write(b[i], ' ');
writeln(#10);
for i := 0 to n - 1 do
if (a[i] > b[i]) then inc(a_sum) else
if a[i] = b[i] then begin inc(a_sum);inc(b_sum); end else
if (a[i] < b[i]) then inc(b_sum);
writeln('Первый спортсмен победил в ', a_sum, ' турах.', #10, 'Второй спортсмен победил в ', b_sum, ' турах.');
if (a_sum = b_sum) then writeln('В общем зачёте ничья!') else
if (a_sum > b_sum) then writeln('В общем зачёте побеждает первый спортсмен!') else
if (a_sum < b_sum) then writeln('В общем зачёте побеждает второй спортсмен!');
end.
960 байт, 7680 бит.
Объяснение:
Для кодирования n символов требуется подобрать число, являющееся степенью двойки, большее или равное n. Степень двойки будет количеством бит, необходимых для кодирования одного символа.
Подберем подходящую степень:
не подходит
подходит, значит 6 - количество бит, необходимое для кодирования одного символа.
В пароле по условию 15 символов => потребуется 15*6=90 бит для кодирования всего пароля. Но "Каждый такой пароль в компьютерной системе записывается минимально возможным и одинаковым целым количеством байт". В одном байте, как известно, 8 бит. 90 на 8 не делится, а вот 96 как раз.
96/8 = 12 - минимально возможное количество байт для кодирования пароля. Так как 11 уже не подходит - в 11 байтах вместится всего 88 бит, а нам потребовалось 90.
Для 80 паролей объем памяти будет равен: 80 * 12 = 960 байт.
960 байт = 960 * 8 = 7 680 бит.