इस साइट पर एक प्रश्न है जो इस प्रश्न के समान है, लेकिन मैंने एक ट्विस्ट जोड़ा है।
आपके पास तीन इनपुट हैं, सर्कल n में लोगों की संख्या , k -th व्यक्ति प्रत्येक चरण में गिना जाता है, और q -th व्यक्ति जो जीवित रहता है। सर्कल के लोगों की संख्या 1 से n तक है ।
उदाहरण के लिए, 20 लोगों के एक सर्कल में, जीवित रहने वाला 20 वां व्यक्ति बहुत पहले व्यक्ति को हटा दिया जाता है, 19 वां उत्तरजीवी दूसरा व्यक्ति हटा दिया जाता है और इसी तरह। सामान्य रूप से, जोसेफस समस्या को हटाए गए अंतिम व्यक्ति को निर्धारित करना है, यहां पहले उत्तरजीवी कहा जाता है ।
सबसे छोटा प्रोग्राम या फ़ंक्शन लिखें, जो उन तीन इनपुटों के साथ जीवित रहने के लिए q -th व्यक्ति की संख्या लौटाता है ।
अगर स्पष्टता के साथ कोई समस्या है, तो कृपया मुझे बताएं।
कुछ उदाहरण:
>>> josephus(20, 3, 9)
4
>>> josephus(4, 3, 1)
1
>>> josephus(100, 9, 12)
46
संपादित करें: मान लें कि सभी इनपुट मान्य हैं। कि कोई भी 0 या किसी भी नकारात्मक संख्या के लिए नहीं पूछेगा और कोई भी 5 लोगों के सर्कल में 20 वें उत्तरजीवी के लिए नहीं पूछेगा (अर्थात, 1 ≤ q) n)
संपादित करें: मैं 2 दिसंबर की शुरुआत में मध्यरात्रि UTC + 7 पर एक उत्तर स्वीकार करूंगा।
q=1यह जोसेफस से जुड़े प्रश्न के समान ही है, है ना?
