704 бита или 88 байт содержится в сообщении без вопроса 1040 бита или 130 байт содержатся в сообщении с вопросом
braigon974
09.09.2022
Вданном случае наилучшей является стратегия половинного деления. сначала определяем страницу. будем делить каждый раз количество страниц, содержащих нужную, пополам. первый вопрос: "нужная страница имеет номер больше 40? " если да, то рассматриваем страницы с 41 по 80, если нет - то страницы с 1 до 40. второй вопрос для случая, когда номер страницы был больше 40 будет выглядеть так: "нужная страница имеет номер больше 60? ". а если номер страницы был не больше 40, то спрашиваем "нужная страница имеет номер больше 20? ". при такой схеме количество необходимых вопросов будет равно 7 ( 2⁶< 80< 2⁷). найдя нужную страницу по такой же схеме ищем номер слова (от 1 до 50). поскольку 2⁵< 50< 2⁶, то потребуется задать 6 вопросов. 7 вопросов для определения номера страницы и 6 для определения номера слова на ней - всего 13 вопросов. поэтому за 12 вопросов отгадать слово не удастся. в то же время, если бы можно было пронумеровать все слова от 1 до 4000 (50х80=4000) и задавать вопросы по порядковым номерам слов, то 12 вопросов хватило бы (2¹¹< 4000< 2¹²)
Yurevich
09.09.2022
Python 3: m = int( d = int( while true: d += 7 if m % 2 == 0 and d > 31: d -= 31 m += 1 elif m % 2 ! = 0 and d > 30: d -= 30 m += 1 if m > 12: break print(m, d) пример ввода: 10 1 пример вывода: 10 8 10 15 10 22 10 29 11 5 11 12 11 19 11 26 12 3 12 10 12 17 12 24 12 31