Сколько вопросов, на которые следует ответ "да/нет", необходимо задать, чтобы наверняка угадать загаданного ученика школы (в ней 560 человек) и его день рождения (год угадывать не нужно)?

ишришощизть ишришощизть    1   01.08.2019 06:20    6

Ответы
Dfh32 Dfh32  02.08.2020 01:25
Имеет смысл воспользоваться методом "дихотомии" (деления пополам).
Если с днем рождения все понятно: в году максимум 366 дней и требуется определить нужный, то непонятно, как быть с загаданным учеником - их условно пронумеровать и спрашивать о номере?
Поэтому принимаем такое решение. Мы делим список учеников на два части  (например, написав сведения о каждом на отдельной карточке и разложив эти карточки на две равные кучки по 560/2 = 280 человек в каждой. Затем задаем вопрос: загаданный ученик находится в первой кучке? По результатам ответа кучку, содержащую загаданного ученика, снова делим пополам. Процесс повторяем пока не останется одна карточка. Аналогично поступаем с датами рождения.
Тогда количество вопросов определится, как степень числа 2, дающая число, не меньшее количества учеников (дней рождения).
2⁹ < 560 < 2¹⁰, поэтому ученик будет угадан максимум за 10 вопросов.
2⁸ < 366 < 2⁹, поэтому день рождения будет угадан максимум за 9 вопросов.
В сумме потребуется задать не более 9+10 = 19 вопросов.

Конечно, можно придумать более продвинутую систему, когда на карточках учеников будут указаны одновременно и даты их рождения, тогда количество вопросов можно снизить.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика