जोसेफस समस्या

From Vigyanwiki
41 सैनिकों और 3 के एक चरण आकार के साथ जोसेफस समस्या की क्लॉड गैस्पर बाचेत डे मेजिरियाक की व्याख्या, यह दर्शाती है कि 16 और 31 स्थान मारे जाने के लिए अंतिम हैं - समय सर्पिल के साथ अंदर की ओर बढ़ता है, हरे रंग के बिन्दु जीवित सैनिकों, भूरे मृत सैनिकों और क्रॉस के चिन्ह हत्याओं को दर्शाते हुए सर्पिल हरे बिंदुओं के साथ आगे बढ़ता है।

कंप्यूटर विज्ञान और गणित में, जोसेफस समस्या (या जोसेफस क्रमचय) एक निश्चित काउंटिंग-आउट (बाहरी गणना) खेल से संबंधित एक सैद्धांतिक समस्या है। इस तरह के खेलों का उपयोग किसी समूह से किसी व्यक्ति को चयन करने के लिए किया जाता है, उदाहरण- ईनी, मिनी, मिनी, मो।

500 लोगों के लिए जोसेफस समस्या क्रम के लिए एक आरेख और छोड़ने का मान 6 है। क्षैतिज अक्ष व्यक्ति की संख्या है। ऊर्ध्वाधर अक्ष (ऊपर से नीचे) समय (चक्र की संख्या) है। एक जीवित व्यक्ति को हरे रंग के रूप में रेखांकित किया जाता है, एक मृत व्यक्ति को काले रंग के रूप में रेखांकित किया जाता है।[1]

जोसेफस समस्या को उत्पन्न करने वाले विशेष काउंट-आउट खेल में, बहुत से लोग एक वृत्त में खड़े होकर मारने की प्रतीक्षा कर रहे हैं। गणना वृत्त में निर्दिष्ट बिंदु से प्रारंभ होती है और वृत्त के चारों ओर एक निर्दिष्ट दिशा में आगे बढ़ती है। एक निर्दिष्ट संख्या में लोगों को छोड़ दिए जाने के बाद, अगले व्यक्ति को मार दिया जाता है। प्रक्रिया को शेष लोगों के साथ पुनरावृत किया जाता है, अगले व्यक्ति से प्रारंभ करते हुए, उसी दिशा में जाते हुए और उसी संख्या में लोगों को छोड़ते हुए, जब तक कि केवल एक व्यक्ति शेष न रह जाए और मुक्त न हो जाए।

समस्या - लोगों की संख्या, प्रारम्भिक बिंदु, दिशा और छोड़ी जाने वाली संख्या को देखते हुए - फांसी से बचने के लिए प्रारंभिक वृत्त में स्थिति का चयन करना है।

इतिहास

समस्या का नाम पहली शताब्दी में रहने वाले एक यहूदी इतिहासकार फ्लेवियस जोसेफस के नाम पर रखा गया है। योदफत के पकड़ने के बाद जोसेफस के प्रत्यक्ष रूप से स्पष्टीकरण के अनुसार, वह और उसके 40 सैनिक रोमन सैनिकों द्वारा एक गुफा में फंस गए थे। उन्होंने अधिकृत करने के स्थान पर आत्महत्या को चयन किया, और चिट्ठी डालकर आत्महत्या करने की एक क्रमिक पद्धति पर समझौता कर लिया। जोसेफस कहते हैं कि भाग्य से या संभवतः भगवान के हाथ से, वह और एक अन्य व्यक्ति अंत तक बने रहे और खुद को मारने के अतिरिक्त रोमनों के सामने आत्मसमर्पण कर दिया। जोसिफस के यहूदी युद्ध (तीसरे व्यक्ति में स्वयं को लिखना) की किताब 3, अध्याय 8, भाग 7 में यह कहानी दी गई है:

हालाँकि, इस अत्यधिक संकट में, वह अपनी सामान्य बुद्धिमत्ता से वंचित नहीं था; लेकिन भगवान की भविष्यवाणी पर विश्वास करते हुए, उन्होंने अपने जीवन को जोखिम में डाल दिया [निम्नलिखित तरीके से]: "और अब," उन्होंने कहा, "चूंकि तुम्हारे बीच यह निर्धारित हो गया है कि तुम मरोगे, चलो हम अपनी आपसी मौतों को बहुत से दृढ़ संकल्प के लिए प्रतिबद्ध करते हैं। वह जिसके नाम पर पहली चिट्ठी निकले, वह उसके द्वारा मार डाला जाए जिसके पास दूसरी चिट्ठी हो, और इस प्रकार भाग्य हम सब के माध्यम से प्रगति करेगा; और न हम में से कोई अपने हाथ से नाश होगा, क्योंकि यह अनुपयुक्त होगा यदि, जब शेष लोग चले जाएं, तो कोई प्रायश्चित्त करे और अपने आप को बचाए।" यह प्रस्ताव उन्हें बहुत न्यायपूर्ण लगा; और जब वह चिट्ठी डालकर इस बात का निर्णय करने को उन पर प्रबल हो गया, तब उस ने चिट्ठी में से एक अपने लिये भी निकाल लिया। जिसके पास पहली चिट्ठी थी, उसने अपनी गर्दन उसके सामने कर दी, जिसके पास अगला था, यह मानते हुए कि अस्पष्टता उनके बीच तुरंत मर जाएगा; जैसा कि मान लिया गया था कि जनरल उनके बीच तुरंत मर जाएगा, क्योंकि उन्होंने सोचा था कि यदि जोसेफस मर सकता है, लेकिन उनके साथ मरना जीवन की तुलना में अच्छा था, फिर भी क्या वह अंतिम तक बचा था, क्या हमें यह कहना चाहिए कि यह संयोग से हुआ है या क्या यह ईश्वर की कृपा से हुआ है। और जैसा कि वह बहुत इच्छुक था कि न तो बहुत से निंदा की जाए और न ही उसे अपने देशवासियों के खून में अपने दाहिने हाथ को रंगने के लिए छोड़ दिया जाए, तो उसने उसे अपनी वफादारी पर विश्वास करने और स्वयं के साथ जीने के लिए तैयार किया।

— — जोसेफस एन.डी., पृ. 579, यहूदियों के युद्ध, पुस्तक III, अध्याय 8, पैरा 7

इस साहसिक कार्य में प्रयुक्त तंत्र का विवरण बल्कि अस्पष्ट है। जेम्स डाउडी और माइकल मेस के अनुसार,[2] 1612 में क्लॉड गैसपार्ड बाचेत डी मेजिरियाक ने उन्मूलन के क्रम को निर्धारित करने के लिए पुरुषों को एक समूह में व्यवस्थित करने और तीन से गणना करने के विशिष्ट तंत्र का सुझाव दिया।[3] यह कहानी प्रायः पुनरावृत की गई है और विशिष्ट विवरण स्रोत से स्रोत में अधिकतम भिन्न होते हैं। उदाहरण के लिए, इज़राइल नाथन हर्स्टीन और इरविंग कपलान्स्की (1974) ने जोसिफस और 39 कॉमरेडों को एक वृत्त में खड़ा कर दिया है और प्रत्येक सातवें आदमी को मार दिया गया है।[4] समस्या का इतिहास फाइबोनैचि त्रैमासिक के संपादक को एस एल ज़ाबेल के पत्र में पाया जा सकता है।[5]

साभिप्रायता के रूप में, जोसीफस ने पूछा: "क्या हम इसे ईश्वरीय विधान पर छोड़ दें या केवल भाग्य पर छोड़ दे?"[6] लेकिन जोसिफस का एक अपरिष्कृत प्रारुप एक अलग कहानी बताता है: कि उसने "चालाकी से संख्याओं की गणना की और इस तरह शेष सभी को धोख़ा देने में सफल रहा"।[6][7] जोसेफस का एक सहयोगी था; तब समस्या यह थी कि बचे हुए दो अंतिम बचे लोगों (जिनकी साजिश उनके जीवित रहने को सुनिश्चित करेगी) के स्थानों का पता लगाना था। यह आरोप लगाया जाता है कि उसने स्वयं को और दूसरे व्यक्ति को क्रमशः 31वें और 16वें स्थान (के लिए k = 3 नीचे) पर रखा।[8]

विविधताएं और सामान्यीकरण

15 ईसाइयों और 15 तुर्कों के साथ जोसेफस समस्या का संस्करण और 9 का एक चरण आकार - समय सर्पिल के साथ अंदर की ओर बढ़ता है, हरे रंग के बिन्दु जीवित सैनिकों, भूरा रंग मृत सैनिकों और क्रॉस हत्याओं को दर्शाते हैं।

जोसेफस समस्या के एक मध्ययुगीन संस्करण में 15 तुर्क और 15 ईसाई सम्मिलित हैं जो एक तूफान में एक जहाज पर सवार हैं जो तब तक डूब जाएगा जब तक कि आधे यात्रियों को पानी में नहीं फेंक दिया जाता। सभी 30 एक वृत्त में खड़े हैं और हर नौवें व्यक्ति को समुद्र में फेंक देना है। ईसाइयों को यह निर्धारित करने की आवश्यकता है कि केवल तुर्कों को फेंकने के लिए कहां खड़ा होना चाहिए।[9] अन्य संस्करणों में तुर्कों और ईसाइयों की भूमिकाओं को आपस में परिवर्तित कर दिया गया है।

ग्राहम, नुथ और पटाशनिक 1989, पी 8 एक "मानक" संस्करण का वर्णन और अध्ययन करता है निर्धारित करें कि अंतिम उत्तरजीवी कहां खड़ा है यदि प्रारंभ करने के लिए n लोग हैं और प्रत्येक दूसरा व्यक्ति (k = 2 नीचे) मार दिया गया है।

इस समस्या का सामान्यीकरण इस प्रकार है। माना जाता है कि प्रत्येक mवें व्यक्ति को आकार n के समूह से निष्पादित किया जाएगा, जिसमें pवां व्यक्ति उत्तरजीवी है। यदि समूह कोई में x लोगों को जोड़ा जाता है, तो उत्तरजीवी p + mx-वें स्थान पर होता है यदि यह n + x से कम या उसके बराबर है। यदि x सबसे छोटा मान है जिसके लिए (p + mx) > (n + x), तो उत्तरजीवी स्थिति (p + mx) - (n + x) में है।[10]

समाधान

विभिन्न समूह आकार, n और चरण आकार, k के लिए जोसिफस समस्या में अंत से पहले (गुलाबी) और अंतिम (गहरा नीला रंग) स्थान है। एसवीजी फ़ाइल, मारने का पूरा क्रम दिखाने के लिए मान पर परिभ्रमण करें।

निम्नलिखित में, n प्रारंभिक चक्र में लोगों की संख्या को दर्शाता है, और k प्रत्येक चरण के लिए गणना को दर्शाता है, अर्थात, k-1 लोगों को छोड़ दिया जाता है और k-वे को मार दिया जाता है। वृत्त में लोगों को 1 से n तक क्रमांकित किया जाता है, प्रारंभिक स्थिति 1 होती है और गणना समावेशी होती है।

k=2

समस्या स्पष्ट रूप से संशोधित हो जाती है जब प्रत्येक दूसरा व्यक्ति मारा जाएगा (प्रत्येक व्यक्ति अपने बाएं या दाएं व्यक्ति को मारता है), अर्थात (अधिक सामान्य स्थिति के लिए, एक समाधान नीचे दिया गया है।)। समाधान पुनरावर्ती रूप से व्यक्त किया गया है। मान लीजिए बचे हुए की स्थिति को निरूपित करें जब प्रारंभ में हो n लोग और ) होते है। वृत्त के चारों ओर पहली बार, सभी सम-संख्या वाले लोग मर जाते हैं। दूसरी बार वृत्त के चारों ओर, नया दूसरा व्यक्ति मर जाता है, फिर नया चौथा व्यक्ति, आदि; यह ऐसा है जैसे कि वृत्त के आसपास कोई पहली बार नहीं था।

यदि लोगों की प्रारंभिक संख्या सम थी, तो स्थिति x में व्यक्ति मूल रूप से स्थिति ( x के प्रत्येक चयन के लिए) में था। मान लीजिए पर व्यक्ति जो अब जीवित रहेगा मूल रूप से स्थिति में था। यह पुनरावृत्ति उत्पन्न करता है

यदि लोगों की प्रारंभिक संख्या विषम थी, तो व्यक्ति 1 को चक्र के चारों ओर पहली बार के अंत में मरने के रूप में माना जा सकता है। पुनः, वृत्त के चारों ओर दूसरी बार, नया दूसरा व्यक्ति मर जाता है, फिर नया चौथा व्यक्ति आदि। इस स्थिति में, स्थिति में व्यक्ति x मूल रूप से स्थिति में था। यह पुनरावृत्ति उत्पन्न करता है

जब मानों को n और से सारणीबद्ध किया जाता है और (OEISA006257, ऊपर की आकृति में नीली संख्याओ का सबसे बायाँ कॉलम भी) प्रतिदर्श निकलता है:

n 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

इससे पता चलता है एक बढ़ता हुआ विषम क्रम है जो के साथ फिर से प्रारंभ होता है जब भी सूचकांक n 2 की घात है। इसलिए, यदि m और l को चयन किया जाता है ताकि और , तब समान हो। यह स्पष्ट है कि सारणी में मान इस समीकरण को संतुष्ट करते हैं। या यह विचार किया जा सकता है कि l लोगों के मरने के बाद केवल लोग रह जाते हैं और यह वें व्यक्ति के पास चला जाता है। यह व्यक्ति अवश्य ही उत्तरजीवी होगा। इसलिए नीचे, अनुमान द्वारा एक प्रमाण दिया गया है।

प्रमेय: यदि और , तब .

प्रमाण : प्रबल अनुमान पर n प्रयोग किया जाता है आधार स्थिति सत्य है। स्थितियों को अलग से विचार किया जाता है जब n सम होता है और जब n विषम होता है।

यदि n सम है, तो और चयन करे इसलिए और है। ध्यान दें कि और क्रम है जहाँ दूसरी समानता अनुमान परिकल्पना से अनुसरण करती है।

यदिn विषम है, तो और का चयन करे इसलिए कि और है। ध्यान दें कि और वहाँ है जहाँ दूसरी समानता अनुमान परिकल्पना से अनुसरण करती है। यह प्रमाण को पूरा करता है।

l के लिए एक स्पष्ट पद प्राप्त करने के लिए को संशोधित किया जा सकता है:

उत्तर के सबसे सामान्य रूप में आकार n का बाइनरी प्रतिनिधित्व सम्मिलित है: के n एक-बिट बाएँ चक्रीय परिवर्तन से प्राप्त किया जा सकता है। यदि n को बाइनरी में के रूप में दर्शाया गया है तो द्वारा समाधान दिया जाता है। इसका प्रमाण के रूप मे n के निरूपण या के लिए उपरोक्त पदों से मिलता है।

कार्यान्वयन: यदि n लोगों की संख्या को दर्शाता है, तो सुरक्षित स्थिति फलन ,जहां और द्वारा दी गई है।

अब यदि संख्या को बाइनरी प्रारूप में दर्शाया गया है, तो पहला बिट को दर्शाता है और शेष बिट्स l को दर्शाता है। उदाहरण के लिए, जब , इसका बाइनरी निरूपण है

n    = 1   0   1   0   0   1
2m   = 1   0   0   0   0   0
l    =     0   1   0   0   1
/**
 * @param n the number of people standing in the circle
 * @return the safe position who will survive the execution 
 *   f(N) = 2L + 1 where N =2^M + L and 0 <= L < 2^M
 */
public int getSafePosition(int n) {
	// find value of L for the equation
	int valueOfL = n - Integer.highestOneBit(n);
	return 2 * valueOfL  + 1;
}


बिटवाइज

बिटवाइज़ संक्रियक का उपयोग करके सुरक्षित स्थिति खोजने का सबसे आसान तरीका है। इस दृष्टिकोण में, n के सबसे महत्वपूर्ण समुच्चय बिट को कम से कम महत्वपूर्ण बिट में स्थानांतरित करने से सुरक्षित स्थिति वापस आ जाएगी।[11] इनपुट एक धनात्मक पूर्णांक होना चाहिए।

n    = 1   0   1   0   0   1
n    = 0   1   0   0   1   1
/**
 * @param n (41) the number of people standing in the circle
 * @return the safe position who will survive the execution 
 */
public int getSafePosition(int n) {
    return ~Integer.highestOneBit(n*2) & ((n<<1) | 1);
    //     ---------------------- ---  | ------------
    //     Get the first set bit   |   | Left Shift n and flipping the last bit
    //    and take its complement  |   |
    //                             |   |
    //                Multiply n by 2  |
    //                         Bitwise And to copy bits exists in both operands.
}


k = 3

1997 में, लॉरेंज हाल्बिसन और नॉर्बर्ट हंगरबुहलर ने स्थिति के लिए एक संवृत रूप की खोज की उन्होंने दिखाया कि एक निश्चित स्थिरांक है

जिसे एकपक्षीय रूप से परिदशुद्ध गणना की जा सकती है। इस स्थिरांक को देखते हुए m को ऐसे सबसे बड़े पूर्णांक के रूप में चयन करे, जैसे कि (यह या तब ) होगा। जब, अंतिम उत्तरजीवी

है, यदि और 1

सभी के लिए पूर्णांकित किया जाता है।

गणना के उदाहरण के रूप में हैलबिसन और हंगरबुहलर देते हैं (जो वास्तव में जोसिफस की समस्या का मूल सूत्रीकरण है)। वे गणना करते हैं:

और इसलिए
(ध्यान दें कि इसे पूर्णांकित कर दिया गया है)

यह संख्या 1 से 41 तक प्रत्येक क्रमिक पास को देखकर सत्यापित किया जा सकता है:

1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34, 35, 37, 38, 40, 41
2, 4, 7, 8, 11, 13, 16, 17, 20, 22, 25, 26, 29, 31, 34, 35, 38, 40
2, 4, 8, 11, 16, 17, 22, 25, 29, 31, 35, 38
2, 4, 11, 16, 22, 25, 31, 35
2, 4, 16, 22, 31, 35
4, 16, 31, 35
16, 31
31

सामान्य स्थिति

डायनेमिक प्रोग्रामिंग का उपयोग इस समस्या को हल करने के लिए सामान्य मामले में पहले चरण का प्रदर्शन करके और फिर शेष समस्या के समाधान का उपयोग करके किया जाता है। जब सूचकांक एक से शुरू होता है, तो पहले व्यक्ति से s परिवर्तन होने वाला व्यक्ति स्थिति है, जहां n व्यक्तियों की कुल संख्या है। मान लीजिए बचे हुए की स्थिति को निरूपित करें। -वें व्यक्ति के मारे जाने के बाद, का एक चक्र बना रहता है, और अगली गिनती उस व्यक्ति से प्रारंभ होती है जिसकी मूल समस्या में संख्या थी। यदि गणना से प्रारंभ की जाती है तो उत्तरजीवी की स्थिति शेष समूह में होगी ; इसे इस तथ्य के लिए गणना में स्थानांतरित करना कि प्रारंभिक बिंदु पुनरावृत्ति देता है[12]

जो सरल रूप लेता है

यदि पदों को अतिरिक्त से क्रमांकित हैं।

इस दृष्टिकोण में संचालन का समय है, लेकिन छोटे और बड़े के लिए एक और तरीका है। दूसरा दृष्टिकोण गतिशील प्रोग्रामिंग का भी उपयोग करता है लेकिन इसमें संचालन का समय होता है। यह k-th, 2k-th, ... को मारने पर विचार करने पर आधारित है। -वें लोग एक चरण के रूप में, फिर संख्या बदल रहे हैं।[citation needed]

यह संशोधित दृष्टिकोण रूप लेता है


संदर्भ

उद्धरण

  1. R.Ugalde, Laurence. "Josephus problem in Fōrmulæ programming language". Fōrmulæ. Retrieved July 26, 2021.
  2. Dowdy & Mays 1989, p. 125.
  3. Bachet 1612, p. 174.
  4. Herstein & Kaplansky 1974, pp. 121–126.
  5. Zabell 1976, pp. 48, 51.
  6. 6.0 6.1 Cohen, Richard. Making History: The Storytellers Who Shaped the Past, p. 54 (Simon & Schuster 2022).
  7. Wells, Colin. A Brief History of History: Great Historians and the Epic Quest to Explain the Past, p. 42 (Rowman & Littlefield, 2008).
  8. Rouse Ball 1905, p. 19.
  9. Newman 1988, pp. 2403–2405.
  10. Robinson 1960, pp. 47–52.
  11. "Josephus Problem using Bitwise Operation (Java)". GitHub. January 7, 2018. Retrieved January 7, 2018.
  12. Park & Teixeira 2018, pp. 1–7.


स्रोत

अग्रिम पठन


बाहरी संबंध