Условие
Есть шоколадка. Первый человек откусывает половину, потом второй — половину от оставшегося, потом первый снова — половину от того, что осталось, и так далее. Кто сколько съест в пределе?
Решение
Подход — геометрическая прогрессия
Обозначим долю, съеденную каждым.
| Шаг | Кто ест | Доля от целого |
|---|---|---|
| 1 | П1 | 1/2 |
| 2 | П2 | 1/2 · 1/2 = 1/4 |
| 3 | П1 | 1/2 · 1/4 = 1/8 |
| 4 | П2 | 1/2 · 1/8 = 1/16 |
| 5 | П1 | 1/32 |
| ... | ... | ... |
Доли первого: 1/2, 1/8, 1/32, ... — геометрическая прогрессия с a = 1/2, q = 1/4.
Доли второго: 1/4, 1/16, 1/64, ... — с a = 1/4, q = 1/4.
Сумма бесконечной геометрической прогрессии
S = a / (1 - q)
Для первого:
S₁ = (1/2) / (1 - 1/4) = (1/2) / (3/4) = 2/3
Для второго:
S₂ = (1/4) / (1 - 1/4) = (1/4) / (3/4) = 1/3
Проверка: S₁ + S₂ = 1 ✓ (вся шоколадка съедена в пределе).
Ответ
Первый ест 2/3 ≈ 66.67%, второй — 1/3 ≈ 33.33%.
Интуиция
Первый «преимущество хода» оказывается решающим: он съедает половину целого, потом половину 1/4 (=1/8), и так далее. В сумме он откусывает в два раза больше, чем второй.
Симуляция
total = 1.0
p1 = p2 = 0.0
for i in range(1, 100):
bite = total / 2
if i % 2 == 1:
p1 += bite
else:
p2 += bite
total -= bite
print(p1, p2) # ≈ 2/3, 1/3Связь с реальной задачей
Это упрощённая модель «преимущества первого хода». В играх и торгах часто работает похожий принцип: тот, кто берёт первым, получает кратно больше, если каждый ход уменьшает оставшееся.
Подводные камни
- «Половина и потом половина = четверть» интуитивно — но дальше нужно следить, что половина берётся от остатка, а не от исходного.
- Бесконечная сумма — конечная сумма ряда
1/2 + 1/8 + 1/32 + ... = 2/3обоснована формулой геометрической прогрессии. Не пытайтесь складывать бесконечно. - «Никогда не доедят» — да, шоколадка не доедается в конечное число шагов, но в пределе всё съедено.
Эталонный ответ
Первый — 2/3, второй — 1/3.
Каждая доля — геометрическая прогрессия с q = 1/4. Сумма для первого: (1/2)/(1−1/4) = 2/3; для второго: (1/4)/(1−1/4) = 1/3.