История изменений
Исправление peregrine, (текущая версия) :
Долго думал (не справился бы за короткий срок), вроде так надо рассуждать:
- Мы пытаемся оптимизировать худший случай, значит, число бросков первого и второго шара примерно равны, если точнее, то их сумма в худшем случае всегда константа.
- Первым шариком мы примерно определяем место, откуда кидать, вторым учтоняем
- Кинув шарик 1 с этажа X, у нас осталось проверить X-1 этажей вторым шариком, таким образом, число бросков составит X-1+1(бросок первого шарика)=X, если первый шарик разбился, т.е. в худшем случае
- Следующий раз мы будем кидать шарик с этажа (X-1)+X, а число бросков второго шарика сократится до X-2…
- Продолжим процесс до достижения сотого этажа, очевидно, что уменьшающиеся шаги первого шарика конечны (X<100) и уменьшаются. Запишем формулу:
X+(X-1)+(X-2)+...+1=100
- Заметим, что у нас арифметическая прогрессия… Вспомним сумму членов арифметической прогрессии и получим формулу
X*(X+1)/2=100
- Решим формулу:
X^2+X=200 X^2+X-200=0 D=b^2-4ac=1+800=801 sqrt(D)=28.3(с какими-то там копейками) x1=(-1-sqrt(D))/(2*1)<0, отбрасываем нафиг x2=(-1+sqrt(D))/(2*1)=27.3/2=13.65, округляем, 14
- Записываем этажи с которого бросать первый шарик:
14, 14+13=27, 27+12=39, 39+11=50, 50+10=60, 60+9=69, 69+8=77, 77+7=84 84+6=90 90+5=95 95+4=99
Вторым шариком уточняем этаж (от предыдущей попытке вверх, пока не разобьётся), если первый разбивается, сумма бросков не превысит 14, задача решена.
Исходная версия peregrine, :
Долго думал (не справился бы за короткий срок), вроде так надо рассуждать:
- Мы пытаемся оптимизировать худший случай, значит, число бросков первого и второго шара примерно равны, если точнее, то их сумма в худшем случае всегда константа.
- Первым шариком мы примерно определяем место, откуда кидать, вторым учтоняем
- Кинув шарик 1 с этажа X, у нас осталось проверить X-1 этажей вторым шариком, таким образом, число бросков составит X-1+1(бросок первого шарика)=X, если первый шарик разбился, т.е. в худшем случае
- Следующий раз мы будем кидать шарик с этажа (X-1)+X, а число бросков второго шарика сократится до X-2…
- Продолжим процесс до достижения сотого этажа, очевидно, что уменьшающиеся шаги первого шарика конечны (X<100) и уменьшаются. Запишем формулу:
X+(X-1)+(X-2)+...+1=100
- Заметим, что у нас арифметическая прогрессия… Вспомним сумму членов арифметической прогрессии и получим формулу
X*(X+1)/2=100
- Решим формулу:
X^2+X=200 X^2+X-200=0 D=b^2-4ac=1+800=801 sqrt(D)=28.3(с какими-то там копейками) x1=(-1-sqrt(D))/(2*1)<0, отбрасываем нафиг x2=(-1+sqrt(D))/(2*1)=27.3/2=13.65, округляем, 14
- Записываем этажи с которого бросать первый шарик:
14, 14+13=27, 27+12=39, 39+11=50, 50+10=60, 60+9=69, 69+8=77, 77+7=84 84+6=90 90+5=95 95+4=99
Вторым шариком уточняем этаж, если первый разбивается, сумма бросков не превысит 14, задача решена.