I = K × i => K = I/i = 2^24/2^2 = 2^22 бита = 2^14 байт = 2^4 кб = 16 кб
ответ: 16 кб
4) 16 = 2^i => i = 4 бит
I = K × i = 384 × 4 = 1536 бит = 1536 ÷ 4 = 192 байт = 192 ÷ 1024 = 0,1875 кб (странгое число, но ладно)
ответ: 0,1875
5) Итак, мощность алфавита до 10 символов. Значит, из формулы N=2^i, i = либо 1, либо 2, либо 3, либо 4. Нам подходит только 2 и 3, так как 3/2 = 1,5, что подходит по условию (учитывая тот факт, что кол-во символов одинаковое, а объём больше в 1,5 раза, то значит и i в первом сообщении больше в 1,5 раза).
N = 2^i N = 2^3 = 8 N = 2^2 = 4
ответ: в первом алфавите - 8 символов, во втором - 4 символа.
В PascalABC.NET есть много что готового. В частности, используя новые возможности, можно записать всё одной (вернее, двумя) строчками:
Код (PascalABC.NET):
##
ArrRandomInteger.Select((val, ind) -> Format('a[{0}] = {1}', ind, val)).Print(NewLine)
Пример вывода:
a[0] = 83
a[1] = 6
a[2] = 58
a[3] = 61
a[4] = 64
a[5] = 49
a[6] = 59
a[7] = 9
a[8] = 83
a[9] = 75
Более традиционный (в стиле "старого Паскаля") подход можно реализовать, например, так:
Код (PascalABC.NET):
var
a: array[1..10] of integer;
i: integer;
begin
for i := 1 to 10 do
begin
a[i] := random(101);
writeln('a[', i, '] = ', a[i]);
end;
end.
Пример вывода:
a[1] = 7
a[2] = 21
a[3] = 15
a[4] = 78
a[5] = 91
a[6] = 72
a[7] = 63
a[8] = 56
a[9] = 38
a[10] = 81