Я просто читал "Проблема с двумя яйцами":
Проблема с двумя яйцами
Вам дают два яйца и доступ к 100-этажному зданию. Оба яйца идентичны. Цель состоит в том, чтобы узнать самый высокий этаж, из которого яйцо не сломается, когда выпадает из окна с этого этажа. Если яйцо выпало и не сломается, оно не повреждено и может быть снова сброшено. Однако, как только яйцо сломано, вот оно для этого яйца.
Если яйцо ломается при падении с пола
n
, то оно также сломается с любого пола над ним. Если яйцо выживет осенью, то оно выдержит любое падение ниже этого.Вопрос в следующем: какую стратегию вы должны принять, чтобы минимизировать количество яиц, необходимых для поиска решения?. (И что наихудший случай для количества капель, которые он возьмет?)
Я следовал за ним до тех пор, пока раздел "Смотри, что я могу сделать три". Автор утверждает, что после разрыва первого яйца он деградирует в проблему с 2 яйцами и может быть решен рекурсивно.
Это здорово, но разве мы не хотим выбирать большие размеры шага при использовании 3 яиц вместо 2 (для первого яйца)? С какого пола мы бросаем первое яйцо?
С 1 яйцом мы должны начать с 1-го этажа.
С 2 яйцами мы решаем для n(n+1)/2=k
и округляем вверх, где n
- начальный этаж, а k
- количество этажей.
С 3... У меня проблемы с формулой.
Размышляя об этом немного больше, с двумя яйцами, максимальное количество капель равно числу пола, из которого мы отбрасываем наше первое яйцо. Например, с 2 яйцами и 100 этажами, решение равно 14, что означает, что мы бросаем первое яйцо с пола 14, и если оно ломается, нам приходится выпадать до 13 раз, для этажей 1-13.
С 3 яйцами решение составляет 9 (как показано на диаграмме). Но мы не хотели бы бросать первое яйцо на этаж 9, мы можем бросить его выше, потому что нам не нужно перебирать промежутки между ними.
Если мы снова выбросимся с пола 14, и он сломается, тогда мы рекурсируем. n(n+1)/2=k
где k
теперь 13... но это дает нам 4.815, если мы потопим и что и добавим наше предыдущее падение, получим 6, что ниже фактического решения, поэтому что-то здесь неправильно...