Коды 00 и 01 полностью занимают ветви, начинающиеся с 0. Коды 100 и 101 занимают две ветви внутри префикса 10. Свободными остаются только ветви 110 и 111.
Двухбитовый код 11 взять нельзя: тогда он станет префиксом и 110, и 111, а для второй буквы не останется ни одного кодового слова. Поэтому минимальная длина неизвестных кодов равна 3.
Можно назначить буквам Д и Е коды 110 и 111. Для Д выбираем код с наибольшим числовым значением — 111.
Ответ: 111
Источник: открытый банк ФИПИ · код задания 326395 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Коды 00 и 01 полностью занимают ветви, начинающиеся с 0. Коды 100 и 101 занимают две ветви внутри префикса 10. Свободными остаются только ветви 110 и 111.
Двухбитовый код 11 взять нельзя: тогда он станет префиксом и 110, и 111, а для второй буквы не останется ни одного кодового слова. Поэтому минимальная длина неизвестных кодов равна 3.
Можно назначить буквам Д и Е коды 110 и 111. Для Д выбираем код с наибольшим числовым значением — 111.
Ответ: 111
Источник: открытый банк ФИПИ · код задания 326395 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Переберём натуральные N и построим строку результата строго по условию. Останавливаемся не на первом N, а выбираем минимальное значение R, превышающее 205.
best = None
for n in range(1, 1000):
b = bin(n)[2:]
if n % 2 == 0:
r_bits = '1' + b + '00'
else:
r_bits = b + bin(b.count('1'))[2:]
r = int(r_bits, 2)
if r > 205 and (best is None or r < best):
best = r
print(best)Минимальный результат получается при N = 20: 20₁₀ = 10100₂, после преобразования 11010000₂ = 208₁₀.
Ответ: 208
Источник: открытый банк ФИПИ · код задания 165399 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Переберём натуральные N и построим строку результата строго по условию. Останавливаемся не на первом N, а выбираем минимальное значение R, превышающее 205.
best = None
for n in range(1, 1000):
b = bin(n)[2:]
if n % 2 == 0:
r_bits = '1' + b + '00'
else:
r_bits = b + bin(b.count('1'))[2:]
r = int(r_bits, 2)
if r > 205 and (best is None or r < best):
best = r
print(best)Минимальный результат получается при N = 20: 20₁₀ = 10100₂, после преобразования 11010000₂ = 208₁₀.
Ответ: 208
Источник: открытый банк ФИПИ · код задания 165399 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Сжатый файл занимает 100 Кбайт. Оригинал больше на 25%, значит его объём равен 100 · 1,25 = 125 Кбайт.
Число пикселей: 192 · 960 = 184 320. Число бит на пиксель: ⌊125 · 1024 · 8 / 184 320⌋ = 5.
Пять бит позволяют использовать 2⁵ = 32 цвета.
Ответ: 32
Источник: открытый банк ФИПИ · код задания 364256 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Сжатый файл занимает 100 Кбайт. Оригинал больше на 25%, значит его объём равен 100 · 1,25 = 125 Кбайт.
Число пикселей: 192 · 960 = 184 320. Число бит на пиксель: ⌊125 · 1024 · 8 / 184 320⌋ = 5.
Пять бит позволяют использовать 2⁵ = 32 цвета.
Ответ: 32
Источник: открытый банк ФИПИ · код задания 364256 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Для 2048 цветов требуется log₂2048 = 11 бит на пиксель.
Размер одного снимка: 1280 · 960 · 11 = 13 516 800 бит. За 240 секунд можно передать 1 392 640 · 240 = 334 233 600 бит.
Количество целых снимков: ⌊334 233 600 / 13 516 800⌋ = 24. Двадцать пятый снимок уже не помещается.
Ответ: 24
Источник: открытый банк ФИПИ · код задания 382406 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Для 2048 цветов требуется log₂2048 = 11 бит на пиксель.
Размер одного снимка: 1280 · 960 · 11 = 13 516 800 бит. За 240 секунд можно передать 1 392 640 · 240 = 334 233 600 бит.
Количество целых снимков: ⌊334 233 600 / 13 516 800⌋ = 24. Двадцать пятый снимок уже не помещается.
Ответ: 24
Источник: открытый банк ФИПИ · код задания 382406 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Алфавитный порядок букв: Е, И, О, Р, Т, Я. Всего существует 6⁶ слов. Удобно последовательно сгенерировать их в указанном порядке, проверить номер и условие, а затем запомнить последнее подходящее слово.
from itertools import product
alphabet = 'ЕИОРТЯ'
last_number = 0
last_word = ''
for number, letters in enumerate(product(alphabet, repeat=6), 1):
word = ''.join(letters)
if (number % 2 == 0 and
word[0] not in 'ЕИО' and
word.count('Я') == 1):
last_number = number
last_word = word
print(last_number, last_word)Последнее подходящее слово — ЯТТТТР, его номер 45100.
Ответ: 45100
Источник: открытый банк ФИПИ · код задания 212412 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»
Алфавитный порядок букв: Е, И, О, Р, Т, Я. Всего существует 6⁶ слов. Удобно последовательно сгенерировать их в указанном порядке, проверить номер и условие, а затем запомнить последнее подходящее слово.
from itertools import product
alphabet = 'ЕИОРТЯ'
last_number = 0
last_word = ''
for number, letters in enumerate(product(alphabet, repeat=6), 1):
word = ''.join(letters)
if (number % 2 == 0 and
word[0] not in 'ЕИО' and
word.count('Я') == 1):
last_number = number
last_word = word
print(last_number, last_word)Последнее подходящее слово — ЯТТТТР, его номер 45100.
Ответ: 45100
Источник: открытый банк ФИПИ · код задания 212412 · документ «Задания ФИПИ. Информатика, 11 класс. Часть 1»