Задача Йосипа Флавія

Задача Йосипа Флавія — задача в комбінаториці, пов'язана з грою в лічилку.
У загальному вигляді задача виглядає наступним чином: на колі було розміщено задану кількість об'єктів, а потім рухаючись по колу в одному напрямку, пропускаючи фіксоване число об'єктів, вилучали по об'єкту поки не залишився лише один. Потрібно знайти об'єкт, який залишився.

Задача названа на честь Йосипа Флавія, римського історика єврейського походження, який жив у I ст. н. е. Згідно з безпосередніми свідченнями Йосипа про облогу Йодфату[en], він, бувши командиром, разом зі своїми 40 воїнами були заблоковані в печері римськими солдатами. Більшість з них не хотіли здаватися, тому вони домовились, що будуть убивати один одного шляхом жеребкування, а той хто залишиться в живих останнім мусить сам себе вбити. І як потім писав сам Йосип Флавій, що завдяки везінню, а можливо, і Божому промислу, він і ще один чоловік залишилися до кінця і, замість того, щоб вбити себе здалися римлянам. Ця історія описана в його книзі «Юдейська війна» (автор пише від третьої особи):
Однак у цій крайній скруті він не був позбавлений своєї звичайної кмітливості; але, довірившись Божому провидінню, він піддав своє життя небезпеці [наступним чином]: «А тепер, — сказав він, — оскільки між вами вирішено, що ви помрете, давайте віддамо нашу взаємну смерть на визначення жереба. Кому випаде жереб першим, нехай буде вбитий тим, кому випаде другий жереб, і таким чином фортуна пройде через усіх нас, і ніхто з нас не загине від власної руки, бо було б несправедливо, якби, коли решти не стане, хтось покаявся і врятувався». Ця пропозиція здалася їм дуже справедливою, і коли він переконав їх розв'язувати це питання жеребкуванням, то витягнув один із жеребків і для себе. Той, кому випав перший жереб, підставив шию тому, кому випав наступний, ніби припускаючи, що полководець помре серед них негайно, бо вони вважали, що смерть, якщо Йосиф помре з ними, солодша за життя; але він залишився з другим до останнього, чи то випадково так сталося, чи то з Божого промислу. Позаяк він дуже хотів не бути засудженим жеребом, ані, якби його залишили до останнього, не заплямувати свою правицю кров'ю своїх земляків, то вмовив його довірити йому свою вірність і жити так само добре, як і він сам.— Йосип Флавій, Юдейська війна, Книга III, гл. 8, п. 7
Залишається неясним порядок, в якому вони один одного вбивали. У 1612 році Клод Гаспар Баше де Мезіріак[en] запропонував конкретний алгоритм, який полягав у тому, щоб поставити солдат у коло і рахувати по три, щоб визначити порядок вбивства.[1][2] Конкретні деталі цієї історії суттєво відрізняються в різних джерелах. Наприклад, у Натана Герштейна[en] та Ірвінга Капланського[en] (1974) Йосип і його 39 побратимів стоять у колі, а кожного сьомого вбивають.[3]
Хоч Йосип у своїй книзі стверджував, що це трапилося випадково, але збережений його слов'янський рукопис розповідає іншу історію: він хитро вирахував, де йому потрібно стати, і обдурив інших.[4][5] Також стверджується, що другий вцілілий воїн був його спільником; тож задача полягала в тому, щоб знайти такі місця для двох, щоб вони залишилися останніми в живих. Він розмістив себе і другого чоловіка на 31-му і 16-му місці відповідно.[6]
У середньовіччі була придумана інша версія цієї задачі, у якій 15 турків і 15 християн знаходяться на борту корабля під час шторму. Корабель потоне, якщо половина пасажирів не буде викинута за борт. Всі 30 стають у коло, і кожну дев'яту людину кидають у море. Потрібно визначити, де потрібно стояти християнам, щоб тільки турки були викинуті. В інших версіях ролі турків і християн міняються місцями.[6][7]
Нехай n — початкова кількість об'єктів у колі, а q — розмір кроку вибування, тобто q-1 об'єктів пропускається, а q-тий вибуває. Об'єкти в колі пронумеровані від 1 до n, лічба починається з 1-ї позиції. — позиція об'єкта, який залишиться останнім, в початковому колі.
У цьому випадку задачу можна розв'язати явно.[8]
Розглянемо ситуацію, коли в початковому колі знаходиться об'єктів. Після першого проходження по колу зникнуть об'єкти з парними номерами, об'єкти, які залишаться, перемістяться з k-ої позиції на . В тому числі переміститься на позицію і оскільки розмір нового кола дорівнює n, то номер цієї позиції також дорівнює Звідси
- при
Якщо в початковому колі знаходиться об'єктів, то після першого проходження по колу до першого об'єкта включно для того, щоб розмір нового кола став дорівнювавати n, зникнуть об'єкти з парними номерами та перший об'єкт, номери тих об'єктів, які залишаться, перемістяться з k-ої позиції на . Аналогічно до попередньої ситуації буде справедлива рівність
- при
Отримані формули можна звести до однієї:[9]
Для зрозуміло, що останнім залишиться об'єкт, з якого складається коло, тобто
Якщо представити у формі де — найбільший степінь двійки, що не перевищує та то за допомогою математичної індукції можна показати, що[8]
Цю формулу можна переписати так, щоб вона залежала лише від n:[10]
Також можна довести, що відповідає циклічному зсуву у бінарному вигляді на один розряд вліво. Тобто, якщо
то
Аналогічно до попереднього випадку можна вивести наступну рекурентну формулу:[12]
де
Для цього випадку також можна вивести явну формулу:[13]
де K = 1.62227050288476731595695098289932411…
У 1899 математик Пітер Тейт запропонував рекурсивний алгоритм, який пов'язує номер об'єкта, який залишиться останнім, на певному кроці з його номером на наступному кроці:[14][15]
- при
Більш швидший алгоритм розробив Дональд Кнут:[16]
; поки виконувати
Також для розв'язання цієї задачі існують алгоритми, які використовують масиви, кільцеві списки або бінарні дерева.[17][18][19]
Перестановка перших n натуральних чисел Jn, q, утворена шляхом застосування процедури вилучення із задачі Йосипа Флавія з довжиною кроку q, називається перестановкою Йосипа.[20][21] Наприклад,
За допомогою китайської теореми про остачі можна показати, що кількість всіх перестановок Йосипа на множині перших n натуральних чисел дорівнює L(n) = НСК(2, …, n).[1]
Для двох перестановок Йосипа та виконується рівність для всіх де t — фіксоване натуральне число, не більше за n, тоді й лише тоді, коли де L(n,t) = НСК(n+1-t, …, n-1, n).[22]
При n = 1, 2, 3 перестановки Йосипа утворюють симетричну групу Sn, при n = 4, 5 — знакозмінну групу An, а при n > 5 ці перестановки групу не утворюють.[23]
Можна розглянути обернену задачу Йосипа Флавія, коли відомі n та k такі, що та Jq(n) = k, потрібно знайти розмір кроку q. Розв'язок цієї задачі завжди існує.[20][23]
Задача, у якій об'єкти додатково мають по l «життів», тобто об'єкт вибуває тоді, коли його виберуть l разів, називається котячою задачею Йосипа Флавія. При фіксованих n та q об'єкт, який залишиться останнім, буде незмінним при всіх l, не менших за (n+2)-ге число Фібоначчі.[24] Також можна розглянути задачу, де об'єкти мають по різній кількості «життів».[19]
Крім цього, початкову задачу можна узагальнити так, щоб на кожному кроці вилучали по m об'єктів.[25][26]
Для шифрування зображень були запропоновані методи на основі хаотичних систем, які для процесу плутанини використовують перестановки Йосипа.[27][28][29]
- ↑ а б Dowdy, James; Mays, Michael E. (1989). Josephus Permutations. Journal of Combinatorial Mathematics and Combinatorial Computing. 6: 125—130.
- ↑ Bachet, C. G. (1612). Problemes Plaisants ed Delectables qui se font par les Nombres (фр.). с. 174.
- ↑ Herstein & Kaplansky, 1974, с. 121-126
- ↑ Cohen, Richard (2022). Making History: The Storytellers Who Shaped the Past. Simon and Schuster. ISBN 9781982195809.
- ↑ Hailperin, Kaiser & Knight, 1999, с. 65
- ↑ а б Rouse Ball, W. W. (1905). Mathematical Recreations and Essays (вид. 2nd). London: Macmillan.
- ↑ Newman, 1988, с. 2403–2405
- ↑ а б Graham, Knuth & Patashnik, 1994, с. 8-12
- ↑ Graham, Knuth & Patashnik, 1994, с. 79
- ↑ Graham, Knuth & Patashnik, 1994, с. 506
- ↑ Graham, Knuth & Patashnik, 1994, с. 11
- ↑ Graham, Knuth & Patashnik, 1994, с. 80
- ↑ Odlyzko, Andrew M.; Wilf, Herbert S. (1991). Functional iteration and the Josephus problem. Glasgow Mathematical Journal. 33 (2): 235—240. doi:10.1017/S0017089500008272.
- ↑ Theriault, Nicolas (2000). Generalizations of the Josephus problem. Utilitas Mathematica. Citeseer. 58: 161—174.
- ↑ Tait (1899). On the Generalization of Josephus’ Problem. Proceedings of the Royal Society of Edinburgh. 22: 165—168. doi:10.1017/S0370164600051129.
- ↑ Graham, Knuth & Patashnik, 1994, с. 81
- ↑ Lloyd, Errol L (1983). An o (n log m) algorithm for the Josephus problem. Journal of Algorithms. Elsevier. 4 (3): 262—270. doi:10.1016/0196-6774(83)90025-1.
- ↑ Cosulschi, Mirel; Gabroveanu, Mihai; Constantinescu, Nicolae (2009). Usage of advanced data structure for improving efficiency for large (n, m) permutations inspired from the Josephus problem (PDF). SCIENCE AND TECHNOLOGY. 12 (1): 13—24.
- ↑ а б Cosulschi, Mirel; Gabroveanu, Mihai; Constantinescu, Nicolae (2013). A Comparative Study on the Algorithms for a Generalized Josephus Problem. Applied Mathematics & Information Sciences. Natural Sciences Publishing Corp. 7 (4): 1451—1457. doi:10.12785/amis/070425.
- ↑ а б Schumer, Peter (2002). The Josephus Problem: Once More Around. Mathematics Magazine. Taylor & Francis. 75 (1): 12—17. doi:10.1080/0025570X.2002.11953093.
- ↑ Herstein & Kaplansky, 1974, с. 121-128
- ↑ Wilson, Gregory L.; Morgan, Christopher L. (2010). An application of Fourier transforms on finite Abelian groups to an enumeration arising from the Josephus problem. Journal of Number Theory. 130 (4): 815—827. doi:10.1016/j.jnt.2009.11.004.
- ↑ а б Wilson, Gregory (1979). On the Josephus permutation.
- ↑ Ruskey, Frank; Williams, Aaron (2010). The Feline Josephus Problem. Fun with Algorithms: 5th International Conference: 343—354. doi:10.1007/978-3-642-13122-6_33.
- ↑ Park, Jang-Woo; Teixeira, Ricardo (2018). Serial execution Josephus problem. Korean Journal of Mathematics. 26 (1): 1—7. doi:10.11568/kjm.2018.26.1.1.
- ↑ Ariyibi, David; Chang, Kevin; Harris, Pamela E (2019). Generalizations of the Feline and Texas Chainsaw Josephus Problems. Open Journal of Discrete Mathematics. Scientific Research Publishing. 9 (4): 144—158. doi:10.4236/ojdm.2019.94011.
- ↑ Yang, Gelan; Jin, Huixia; Na, Bai (2014). Image Encryption Using the Chaotic Josephus Matrix. Mathematical Problems in Engineering. 2014 (1). doi:10.1155/2014/632060.
- ↑ Hua, Zhongyun; Xu, Binxuan; Jin, Fan; Huang, Hejiao (2019). Image Encryption Using Josephus Problem and Filtering Diffusion. IEEE Access. 7: 8660—8674. doi:10.1109/ACCESS.2018.2890116.
- ↑ Naim, M and Pacha, A Ali and Serief, C (2021). A novel satellite image encryption algorithm based on hyperchaotic systems and Josephus problem. Advances in Space Research. 67 (7): 2077—2103. doi:10.1016/j.asr.2021.01.018.
- Томас Г. Кормен, Чарлз Е. Лейзерсон, Роналд Л. Рівест, Кліфорд Стайн. Вступ до алгоритмів. — Київ : К.І.С., 2019. — 1288 с. — ISBN 978-617-684-239-2.
- Josephus, Flavius (n.d.). The works of Flavius Josephus: in three volumes; with illustrations. Переклад: William Whiston. London: George Routledge & Sons.
- Graham, R. L.; Knuth, D. E.; Patashnik, O. (1994). Concrete Mathematics: A Foundation for Computer Science[en] (вид. 2). Addison Wesley. ISBN 0-201-55802-5.
- Herstein, I. N.; Kaplansky, I. (1974). Matters Mathematical. Harper and Row. ISBN 9780060428037.
- Hailperin, Max; Kaiser, Barbara; Knight, Karl (1999). Concrete abstractions: an introduction to computer science using Scheme. Max Hailperin. ISBN 978-0534952112.
- Newman, J. R. (1988). The World of Mathematics. Т. 4. Tempus.
- Josephus Flavius game (Java Applet) at cut-the-knot allowing selection of every nth out of 50 (maximum).
- Weisstein, Eric W. Josephus Problem(англ.) на сайті Wolfram MathWorld.