Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Иосифа Флавий

Ответить
Настройки темы
C/C++ - Иосифа Флавий

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Задача Иосифа Флавия или считалка Джозефуса — известная математическая задача с историческим подтекстом.
Задача в своей основе имеет легенду. Отряд из 41-го сикария, защищавший галилейскую крепость Массада, не пожелал сдаваться в плен блокировавшим его превосходящим силам римлян. Сикарии стали в круг и договорились, что каждые два воина будут убивать третьего, пока не погибнут все. Самоубийство — тяжкий грех, но тот, кто в конце концов останется последним, должен будет его совершить. Иосиф Флавий, командовавший этим отрядом, якобы быстро рассчитал, где нужно стать ему и его другу, чтобы остаться последними. Но не для того, чтобы убить друг-друга, а чтобы сдать крепость римлянам. В современной формулировке задачи участвует n воинов и убивают каждого m-го. Требуется определить номер k начальной позиции воина, который должен будет остаться последним.
К примеру Если есть10 людей то выживает только 4-ый.
Как можно написать алгаритм?

Отправлено: 15:18, 08-10-2010

 

Студент


Сообщения: 445
Благодарности: 8

Профиль | Отправить PM | Цитировать


Один вариант - написать "в лоб". Имитировать эту считалку с начала до конца и посмотреть, кто останется.
Второй вариант - решить так называемое рекуррентное соотношение. Это решение подробно описано этой книге:
http://www.ozon.ru/context/detail/id/4721432/

-------
*Origin: Lots of people talking, few of them - no... (2:5020/****.**)

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:33, 09-10-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


У Перельмана в "Занимательной Математике" разбиралась подобная задача.
Если решать самостоятельно, то поседеть порисовать примеры, подумать.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 10:12, 09-10-2010 | #3


Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


В приниципе я понял как работает миханизм и формула есть. Проблема как написать это всё? Используя цикл.

Спасибо за книжку.

Отправлено: 11:34, 09-10-2010 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Иосифа Флавий

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход