Јосифов проблем

С Википедије, слободне енциклопедије

У рачунарству и математици Јосифов проблем[1] или Јосифова пермутација је теоријски проблем везан за игре елиминације пребројавањем.
Људи стоје у кругу чекајући да буду елиминисани. Пребројавање почиње од некога из круга и наставља се у фиксном правцу(смеру). У сваком кораку један број особа бива прескочен а следећа особа бива елиминисана. Елиминација се наставља над преосталим особама чији број постаје све мањи и мањи све док не остане само једна особа. Задатак је да се изабере положај играча у првом кругу тако да тај играч избегне елиминацију тј., победи.

Историјат[уреди | уреди извор]

Проблем је назван по Јосифу Флавију, јеврејском историчару који је живео у првом веку нове ере. Према Јосифовом запису о опсади Јодфата, он је заједно са још 40 војника био заробљен у пећини чији су излаз блокирали Римљани. Изабрали су самоубиство уместо заробљеништва и одлучили да направе круг и да међусобно убијају сваког трећег. Јосиф тврди да су, срећом или можда уз Божију помоћ, он и још један човек једини преживели и предали се Римљанима.
Следи одломак из 3. књиге, 8. поглавља, 7. пасуса Јосифовог дела ‘’Јудејски рат”(писаног у трећем лицу):

А како Јосифа и покрај тога очајног положаја није напуштала његова присебност, уздајући се у божију заштиту, стави свој живот на коцку па рече: "Пошто је закључено да се умре, то нека коцка одреди који ће сваки пут бити убијен од другога. Нека онај на кога падне коцка буде убијен од оних на које падне коцка после њега(поред њега). Тако ће сваког задесити иста судба а да ниједан не страда од своје руке. Јер не би било право да се после убиства другога неко покаје и спаси се." Овај предлог му врати поверење пошто је и он морао вући коцку. Чим би неко извукао коцку, драговољно је пуштао да га следећи убију свесни да ће тако и војсковођа одмах умрети. Јер су држали да им је смрт са Јосифом много милија од живота. Лреостаде ипак он, сретним случајем или божијим одређењем, са још једним другом, па пошто га није ни коцка погодила, а није хтео ни да каља руке крвљу сународника, наговори и овога да се преда и да спаси живот. [2]


Решење[уреди | уреди извор]

У даљем тексту, означава почетни број људи у кругу, а означава индекс избаченог у сваком кораку, тј. људи се прескаче а -ти се елиминише. Људи у кругу су означени бројевима од до .

Случај k=2[уреди | уреди извор]

Експлицитно ћемо решити проблем за случај када свака друга особа треба да буде елиминисана, односно (За општији случај, када дајемо скицу решења испод). Решење проблема изражавамо рекурзивно. Нека означава позицију преживелог у првобитном кругу. У првом кораку елиминишу се сви људи који су обележени парним бројевима. У другом кораку елиминише се сваки други, онда сваки четврти и тако даље.
Ако је првобитни број људи у кругу био паран онда особа која се нашла на позицији у другом кораку је првобитно била на позицији (ма како да изаберемо ) Нека је . Особа на позицији која је прескочена, првобитно је била на позицији . Ово нам даје рекурентну везу:

:.

Ако је првобитни број људи у кругу био непаран, онда размишљамо овако: особа која је започела игру ће испасти на крају првог круга. И поново ће у другом кругу свака друга особа испасти, у трећем свака четврта, итд . У овом случају особа која је на позицији првобитно је била на позицији . Ово нам даје рекурентну везу:

:

Када прикажемо табеларно вредности и можемо уочити образац:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 1 3 1 3 5 7 1 3 5 7 9 11 13 15 1

Ово указује да је систем растућих ланаца непарних бројева који се прекида са вредношћу кад год је степен броја 2. Зато можемо одабрати тако да , и , тада је . Јасно је да вредности у табели задовољавају ову једначину. Или, може и овако да се каже: након што је људи избачено, остало је само њих и прелази се на -вог. Он мора да преживи. Зато је . Следи доказ индукцијом.
Теорема: Ако , и , онда .
Доказ: Користимо потпуну индукцију по . Индукцијска претпоставка је тачна за . Разликујемо случајеве када је парно и када је непарно.
Ако је парно, бирамо , тако да . Уочимо да . Имамо , где друга једнакост следи на основу индуктивне претпоставке.
Ако је непарно, онда бирамо тако да . Уочимо да је сада . Имамо , при чему друга неједнакост следи из индуктивне хипотезе. Овим је доказ завршен.
Можемо решити по да добијемо експлицитан израз за :
.
Најелегантнији облик решења укључује бинарну репрезентацију величине : се тада добија цикличним померањем улево за једно место бинарне репрезентације броја . Ако је бинарна репрезентација онда је решење дато са . Доказ следи из репрезентације као , или из претходног израза за

Општи случај[уреди | уреди извор]

Најлакши начин да се реши проблем у општем случају је да се користи динамичко програмирање извршавањем првог корака и коришћењем тог решења у преосталом проблему. Почев од првог, члан који се померио места од првог члана је на позицији где је укупан број особа. Нека означава позицију преживелог. Пошто се елиминише -та особа остаје нам особа у кругу, а поновно пребројавање почиње од члана који је у првобитном распореду био на позицији . Позиција преживелог би била ако би се почело од првог; како се почиње од , ово даје следећу рекурентну везу:
, уз услов .
Што се може једноставније записати:
, уз услов
уколико бисмо нумерисали позиције од 0 до n-1.

Варијанте и генерализације[уреди | уреди извор]

Јосиф је имао помагача; у том случају проблем се састоји у томе да се погодно одаберу места за последњу двојицу преживелих(чија би завера осигурала њихово преживљавање). Показује се да је услов за то да један од њих буде на -том а други на -вом месту.[3] Уопштење овог процеса је следеће. Претпостављамо да ће свака -та особа бити елиминисана од њих , a да је -та особа преживела елиминацију. Ако се дода још људи, онда ће позиција преживелог бити -та, уколико је . Ако је најмањи број такав да је , тада је позиција преживелог [4] .
Још једна варијанта је да се уместо елиминације фиксираног члана у сваком кораку, елиминише у првом кораку сваки други, у другом сваки трећи, итд , -ти, док год има смисла (Јосифово сито)[5].

Проширење Јосифовог проблема[уреди | уреди извор]

Дефиниција проблема: Нека је особа нумерисано од до у кругу. Елиминише се свака друга особа од две. За дато наћи која ће особа бити елиминисана -та[6] .

Референце[уреди | уреди извор]

  1. ^ Josephus problem - Wikipedia, the free encyclopedia
  2. ^ Флавије, Јосиф (1967). Јудејски рат. Просвета. (Превео са латинског Душан Глумац)
  3. ^ Rouse Ball, W. W. (1896). Mathematical Recreations and Essays (2nd изд.). Macmillan. Приступљено 1. 08. 2015. 
  4. ^ Robinson, W. J. (1960). „The Josephus Problem”. The Mathematical Gazette. 44 (347): 47—52. doi:10.2307/3608532. Приступљено 1. 08. 2015. 
  5. ^ A000960 - OEIS
  6. ^ Armin Shams-Baragh Formulating The Extended Josephus Problem.

Литература[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]