Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Иосифа Флавий (http://forum.oszone.net/showthread.php?t=187774)

Hardcore 08-10-2010 15:18 1514348

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

noname00.pas 09-10-2010 09:33 1514848

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

lxa85 09-10-2010 10:12 1514865

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

Hardcore 09-10-2010 11:34 1514902

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

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


Время: 17:10.

Время: 17:10.
© OSzone.net 2001-