Если код равномерный двоичный, а мощность алфавита 26 символов, нужно подобрать такое количество бит (двоичных разрядов), чтобы оно могло вместить 26 комбинаций.
1 бит - 2 комбинации (2¹ = 2)
2 бита - 4 комбинации (2² = 4)
3 бита - 8 комбинаций (2³ = 8)
4 бита - 16 комбинаций (2⁴ = 16)
5 бит - 32 комбинации (2⁵ = 32)
Видно, что 4 бита мало, а 5 бит кодируют даже не 26, а 32 комбинации. Следовательно, под код одного символа нужо 5 бит.
А если символов 20, то в 20 раз больше. 5×20 = 100 бит. Это и есть нужная нам длина.
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 - №1 begin var a,b,c:integer; Write('Введите три натуральных числа: '); Read(a,b,c); var s:=a+b+c; var k:=Trunc(sqrt(s)); if k*k=s then Writeln('Сумма чисел - квадрат ',k) else Writeln('Сумма чисел не является квадратом целого') end.
Тестовое решение Введите три натуральных числа: 13 4 8 Сумма чисел - квадрат 5
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 - №2 begin var a,b,c:integer; Write('Введите три натуральных числа: '); Read(a,b,c); var s:=power(a*b*c,1/3); if s=int(s) then Writeln('Среднее геометрическое - целое число') else Writeln('Среднее геометрическое - нецелое число') end.
Тестовое решение Введите три натуральных числа: 16 8 15 Среднее геометрическое - нецелое число
Все просто.
Если код равномерный двоичный, а мощность алфавита 26 символов, нужно подобрать такое количество бит (двоичных разрядов), чтобы оно могло вместить 26 комбинаций.
1 бит - 2 комбинации (2¹ = 2)
2 бита - 4 комбинации (2² = 4)
3 бита - 8 комбинаций (2³ = 8)
4 бита - 16 комбинаций (2⁴ = 16)
5 бит - 32 комбинации (2⁵ = 32)
Видно, что 4 бита мало, а 5 бит кодируют даже не 26, а 32 комбинации. Следовательно, под код одного символа нужо 5 бит.
А если символов 20, то в 20 раз больше. 5×20 = 100 бит. Это и есть нужная нам длина.
begin
var a,b,c:integer;
Write('Введите три натуральных числа: '); Read(a,b,c);
var s:=a+b+c;
var k:=Trunc(sqrt(s));
if k*k=s then Writeln('Сумма чисел - квадрат ',k)
else Writeln('Сумма чисел не является квадратом целого')
end.
Тестовое решение
Введите три натуральных числа: 13 4 8
Сумма чисел - квадрат 5
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 - №2
begin
var a,b,c:integer;
Write('Введите три натуральных числа: '); Read(a,b,c);
var s:=power(a*b*c,1/3);
if s=int(s) then Writeln('Среднее геометрическое - целое число')
else Writeln('Среднее геометрическое - нецелое число')
end.
Тестовое решение
Введите три натуральных числа: 16 8 15
Среднее геометрическое - нецелое число