Старый вариант загадки-считалочки, где надо найти начальную точку для счёта:
На судне находится 20 человек, между ними один негр. Вследствие недостатка в продовольствии один из команды должен быть выброшен за борт. Решено отсчитывать по семи и каждого седьмого освобождать; дойдя до конца ряда, переходить к его началу, не прерывая счёта. Оставшийся последним должен умереть. Негр (обозначенный перевернутой спичкой) может стать на любое место в ряду. С кого следует начинать счёт, чтобы негр оставался всегда последним?
Ответ:
Эта задача является вариантом задачи Иосифа Флавия.
Есть несколько способов её решения, а один из способов - с использованием рекуррентных соотношений.
Обозначим исходное число человек - n. Число человек, которое отсчитываем каждый раз - m, k - позиция последнего оставшегося человека (в нашем случае это негръ).
Тогда k можно выразить через рекуррентное соотношение:
k(n, m) = 1 + (k(n-1, m) + m - 1) mod n, причём k(1, m) = 1.
Ниже приведена интерактивная иллюстрация этого решения. Как видите, чтобы при условиях, изображённых на иллюстрации к загадке, негръ оказался последним, надо начинать счёт с человека номер 6.
Кликните по клетке, чтобы выбрать начало счёта:
начало ↓
1
↑ конец
начало ↓
2
↑ конец
начало ↓
3
↑ конец
начало ↓
4
↑ конец
начало ↓
5
↑ конец
начало ↓
6
↑ конец
начало ↓
7
↑ конец
начало ↓
8
↑ конец
начало ↓
9
↑ конец
начало ↓
10
↑ конец
начало ↓
11
↑ конец
начало ↓
12
↑ конец
начало ↓
13
↑ конец
начало ↓
14
↑ конец
начало ↓
15
↑ конец
начало ↓
16
↑ конец
начало ↓
17
↑ конец
начало ↓
18
↑ конец
начало ↓
19
↑ конец
начало ↓
20
↑ конец
Всего 20 человек .
Выбывает каждый 7 .
При начале счёта с номера 6, из 20 человек последним останется номер 8.