Динамическая типизация означает, что во время выполнения программы переменные могут принимать различные значения, например, сначала быть целочисленной, потом строковой, потом натуральной переменной. В языках со строгой типизацией такого сделать нельзя. Программа с самого начала выделяет некоторую область памяти под хранение значения и определяет, что это будет, строка, целое значение или натуральное.
Например, python - это язык с динамической типизацией. В одной программе можно сделать один за другим такие присваивания: а=256 а="кукареку", то есть программа сначала будет хранить в переменной целое число 256, а потом поменяем его на строку "кукареку".
Pascal же язык со строгой типизацией. Для хранения чисел там надо выделить одни переменные, а для хранения строк - другие: var a, b : integer; c : string; begin a:=256; b:=12; c:="hello"
Каждый символ может принимать любое значение, точка, либо тире.
То есть мы можем получить и ... и _ _ _ и _._ и ещё кучу всего (это только из 3ёх, из 4ёх символов аналогично, но кол-во будет больше)
Для начала подсчитаем количество символов, которое можно закодировать с ёх знаков:
Далее подсчитаем, сколько символов можно закодировать с четырёх знаков:
Формула состоит из количества знаков, которыми можно записать число, возведённых в степень, равную количеству использования этих знаков.
Что бы узнать, сколько можно закодировать используя "не менее 3ёх и не более 4ёх сигналов", нужно просто сложить наши два результата, 8+16=24
Например, python - это язык с динамической типизацией. В одной программе можно сделать один за другим такие присваивания:
а=256
а="кукареку", то есть программа сначала будет хранить в переменной целое число 256, а потом поменяем его на строку "кукареку".
Pascal же язык со строгой типизацией. Для хранения чисел там надо выделить одни переменные, а для хранения строк - другие:
var
a, b : integer;
c : string;
begin
a:=256;
b:=12;
c:="hello"
Вот так.