सेवेन्स का खेल निम्नानुसार खेला जाता है: n
खिलाड़ी एक सर्कल में बैठते हैं, और 1 से गिनती शुरू करते हैं, बाईं ओर (या खिलाड़ी A
से खिलाड़ी तक B
) पास करते हैं।
जब एक संख्या p
जिसमें 7
यह है या द्वारा विभाज्य है 7
, पहुंच गया है, तो उस खिलाड़ी ने जो नंबर बोला p-1
, अगले खिलाड़ी के p
कहने के बाद , कहना होगा p+1
और बोलने वाले लोगों के आदेश को उलट देता है। उदाहरण के लिए, यदि खिलाड़ी B
बोलता है 6
, तो खिलाड़ी C
कहता है 7
, B
कहता है 8
और खिलाड़ी A
कहता है 9
।
नोट: जो लोग वास्तविक जीवन में खेलना चाहते हैं, अगर कोई व्यक्ति एक संख्या भूल जाता है (या उस संस्करण में जहां sevens
गलती से नहीं कहा जाता है seven
), तो वे सर्कल से समाप्त हो जाते हैं, लेकिन हम इस चुनौती से इस विस्तार को छोड़ देंगे।
यह चुनौती खुद को प्रिंट करना है कि प्रत्येक खिलाड़ी को m
एक इनपुट n
खिलाड़ियों के लिए इनपुट के लिए सेवेन्स के एक परिपूर्ण खेल में कौन सी संख्या कहनी चाहिए ।
एक उदाहरण है, जहां पांच लोगों को, के रूप में A
, B
, C
, D
, और E
, जब तक वे तक पहुँचने के लिए खेलते हैं 30
। वे इस तरीके से खेलते हैं
A: 1 6 8 13 15 19 23 30
B: 2 7* 12 16 18 24
C: 3 11 17* 25
D: 4 10 21* 26 28*
E: 5 9 14* 20 22 27*29
जहां sevens
के साथ चिह्नित हैं *
। ध्यान दें कि 27
और 28
, हम दो बार पलट रहे हैं, और "से सामान्य" के रूप में खेलना जारी D
है E
।
कृपया ध्यान दें कि आउटपुट का उपरोक्त प्रारूप में होना आवश्यक नहीं है। मैंने इसे कुछ स्पष्टता के लिए इस तरह छापा।
नियम
इनपुट किसी भी क्रम में दो पूर्णांक है
m
,n
खिलाड़ियों की संख्या का प्रतिनिधित्व करने के लिए अंतिम संख्या का प्रतिनिधित्व करता है।आउटपुट कई ऐरे या कई स्ट्रिंग्स हो सकते हैं, प्रत्येक खिलाड़ी के लिए एक। यदि आप स्ट्रिंग्स का उपयोग करते हैं, तो आपको विभाजकों का उपयोग करने की आवश्यकता नहीं है (हालांकि, यदि आप अपने कोड परीक्षणों में कुछ जोड़ सकते हैं, तो हम पठनीयता की सराहना करेंगे)। यदि आप वास्तव में उन्हें किसी भी तरह एक सर्कल में प्रिंट कर सकते हैं, तो यह स्वीकार्य है, और यह बहुत अच्छा होगा।
आउटपुट को यह निर्दिष्ट नहीं करना है कि कौन से खिलाड़ी हैं (यह काफी स्पष्ट है कि पहला खिलाड़ी वह है जो कहता है
1
), हालांकि अगर आउटपुट को किसी भी कारण से सॉर्ट नहीं किया गया है, तो आपको स्पष्ट करना चाहिए कि कौन सा खिलाड़ी बोल रहा है । जो खिलाड़ी कुछ नहीं कहते हैं, उन्हें स्वीकार करने की भी अनुमति दी जाती है यदि आप स्पष्ट करते हैं कि कौन से खिलाड़ी बोल रहे हैं। मैं नीचे संभावित आउटपुट के कुछ और उदाहरण जोड़ूंगा।यह कोड गोल्फ है, इसलिए सबसे छोटी संख्या बाइट्स जीतती है।
हमेशा की तरह, अगर समस्या स्पष्ट नहीं है, तो कृपया मुझे बताएं। गुड लक और गुड गोल्फिंग!
उदाहरण
>>> sevens_string(30, 5, " ")
'1 6 8 13 15 19 23 30'
'2 7 12 16 18 24'
'3 11 17 25'
'4 10 21 26 28'
'5 9 14 20 22 27 29'
>>> sevens_string(42, 5)
'16813151923303539'
'27121618243140'
'31117253241'
'410212628333742'
'591420222729343638'
>>> sevens_array(20, 3)
[1, 4, 7, 10, 13, 15, 19]
[2, 5, 9, 12, 16, 18]
[3, 6, 8, 11, 14, 17, 20]
>>> sevens_array(18, 10)
[1, 13, 15]
[2, 12, 16, 18]
[3, 11, 17]
[4, 10]
[5, 9]
[6, 8]
[7]
[]
[]
[14]
1 2 3 4 1 2 3 2 1 4 3 2 1 4 1
।) मैं यह नहीं कह रहा हूं कि वह चुनौती के मामले में बेहतर या बदतर है: बस यह वास्तविक दुनिया में अधिक उपयोगी होगा।