![]() |
Задача Иосифа Флавия
Сущ-т легенда что Иосиф Флавий выжил и стал известным благодоря математической одаренности. В ходе Иудейской войны он в составе отряда из 41 иудейского воина был загнан римлянами в пещеру. Предпочитая самоубийство в плену, воины решили выстроится в круг и последовательно убивать каждого 3го из живых до тех пор пока е останется ни одного человека. Однако Иосиф на ряду с 1 из единомышленников счел подобный конец бессмысленным - он быстро вычеслил места в круге на которые себя и товарища. И лишь поэтому остался жив.
Исключать k-го, пока не останется 1 человек. Определить номер уцелевшего. как на пхп реализовать а то я уже вешаюсь |
А правильный ответ какой?
Если исключать каждого k-го человека, то в конце останутся k первых человек. Так? Если да, то могу привести код, который привел меня к такому выводу. Неправильно. P.S. Уже почти дописал правильный код. |
PHP код:
1) число n перевести в двоичную систему; 2) в полученном двоичном числе первую слева единицу приписать в конце 3) перевести получившееся число в десятичную систему счисления. |
Код:
<?php |
я сам не могу понять ) какой правельный
|
Для простоты берем 8 войнов и вычеркиваем каждого третьего по кругу:
12345678 12_45678 12_45_78 (*) _2_45_78 _2_4__78 ___4__78 ___4__7_ (*)Вычеркивание по кргу значит: Берем 12_45_78. Следующий для удал. эелемент как бы 9. Ставим рядом. 12_45_7812_45_78 Вычеркиваем "9" эелемент. 12_45_78_2_45_78. Убираем первую часть. _2_45_78 |
ну да.. у мя непрально так как k = 2.. лоханулся я =)
|
мда мозги у меня не варят 5 часов убил блин
|
неа не правильно кстати :-)
|
если ввести что убивать каждого 7 и войнов будет 8 то (!)7 останиться живым
|
| Время: 21:55 |