|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Иосифа Флавий |
|
C/C++ - Иосифа Флавий
|
Новый участник Сообщения: 43 |
Профиль | Отправить PM | Цитировать Задача Иосифа Флавия или считалка Джозефуса — известная математическая задача с историческим подтекстом.
Задача в своей основе имеет легенду. Отряд из 41-го сикария, защищавший галилейскую крепость Массада, не пожелал сдаваться в плен блокировавшим его превосходящим силам римлян. Сикарии стали в круг и договорились, что каждые два воина будут убивать третьего, пока не погибнут все. Самоубийство — тяжкий грех, но тот, кто в конце концов останется последним, должен будет его совершить. Иосиф Флавий, командовавший этим отрядом, якобы быстро рассчитал, где нужно стать ему и его другу, чтобы остаться последними. Но не для того, чтобы убить друг-друга, а чтобы сдать крепость римлянам. В современной формулировке задачи участвует n воинов и убивают каждого m-го. Требуется определить номер k начальной позиции воина, который должен будет остаться последним. К примеру Если есть10 людей то выживает только 4-ый. Как можно написать алгаритм? |
|
Отправлено: 15:18, 08-10-2010 |
Студент Сообщения: 445
|
Профиль | Отправить PM | Цитировать Один вариант - написать "в лоб". Имитировать эту считалку с начала до конца и посмотреть, кто останется.
Второй вариант - решить так называемое рекуррентное соотношение. Это решение подробно описано этой книге: http://www.ozon.ru/context/detail/id/4721432/ |
------- Отправлено: 09:33, 09-10-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать У Перельмана в "Занимательной Математике" разбиралась подобная задача.
Если решать самостоятельно, то поседеть порисовать примеры, подумать. |
------- Отправлено: 10:12, 09-10-2010 | #3 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать В приниципе я понял как работает миханизм и формула есть. Проблема как написать это всё? Используя цикл.
Спасибо за книжку. |
Отправлено: 11:34, 09-10-2010 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
|