A = [] # создаем массив
step = 3 # создаем переменную , которая является началом нашего ряда
while sum(A) < 15: # пока сумма нашего массива меньше 15 (sum - складывает все элементы нашего массива)
A.append(step) # мы добавляем в массив число
step +=1 # и увеличиваем число в ряду на 1
print(sum(A)) # после выполнения цикла выводим сумму массива
A = [] # создаем массив
step = 3 # создаем переменную , которая является началом нашего ряда
Num = int(input()) # просим у пользователя ввести число
while sum(A) < Num: # пока сумма нашего массива меньше (sum - складывает все элементы нашего массива)
A.append(step) # мы добавляем в массив число
step *= 2 # умножаем шаг ряда на 2
print(sum(A)) # после выполнения цикла выводим сумму масиива
Объяснение:
Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование.
Решение.
Для нахождения кодовых слов будем использовать двоичное дерево, в котором от каждого узла отходит две ветви, соответствующие выбору следующей цифры кода. Буквы будем размещать на конечных узлах дерева — листьях. Условие Фано выполняется, поскольку при проходе от корня дерева к букве в середине пути не встречается других букв.
Пример дерева, обеспечивающего минимальную сумму длин всех шести кодов изображено на рисунке.
Суммарная длина такого кода 1 + 2 + 3 + 4 + 5 + 5 = 20.
ответ: 20.
Объяснение: