एक राइफल फेरबदल एक प्रकार का फेरबदल है जहां डेक को दो भागों में विभाजित किया जाता है और विभाजन फिर से एक नया फेरबदल डेक बनाने के लिए एक साथ spliced होते हैं।
कार्ड को इस तरह से एक साथ जोड़ दिया जाता है कि कार्ड उस विभाजन के भीतर अपने सापेक्ष क्रम को बनाए रखते हैं जिसका वे सदस्य हैं । उदाहरण के लिए, यदि कार्ड ए डेक में कार्ड बी से पहले है और कार्ड ए और बी एक ही विभाजन में हैं, तो कार्ड ए को अंतिम परिणाम में कार्ड बी से पहले होना चाहिए , भले ही उनके बीच कार्ड की संख्या बढ़ गई हो। यदि A और B अलग-अलग विभाजनों में हैं, तो वे किसी भी क्रम में हो सकते हैं, चाहे उनका प्रारंभिक क्रम अंतिम परिणाम में हो।
प्रत्येक राइफल फेरबदल को तब कार्ड के मूल डेक के क्रमचय के रूप में देखा जा सकता है। उदाहरण के लिए क्रमपरिवर्तन
1,2,3 -> 1,3,2
एक व्याकुल फेरबदल है। यदि आप डेक को ऐसे ही विभाजित करते हैं
1, 2 | 3
हम देखते हैं कि हर कार्ड में 1,3,2
विभाजन के हर दूसरे कार्ड के सापेक्ष समान क्रम है। 2
अभी भी है 1
।
दूसरी ओर निम्नलिखित क्रमपरिवर्तन एक राइफल फेरबदल नहीं है।
1,2,3 -> 3,2,1
हम इसे सभी दो (गैर-तुच्छ) विभाजनों के लिए देख सकते हैं
1, 2 | 3
1 | 2, 3
कार्ड की एक जोड़ी है जो उनके सापेक्ष आदेशों को बनाए नहीं रखते हैं। पहले विभाजन में 1
और 2
उनके क्रम को बदलते हैं, जबकि दूसरे विभाजन में 2
और 3
उनके क्रम को बदलते हैं।
हालांकि हम देखते हैं कि 3, 2, 1
दो राइफल के फेरबदल की रचना की जा सकती है,
1, 3, 2 + 2, 3, 1 = 3, 2, 1
वास्तव में सिद्ध होने के लिए एक बहुत ही सरल तथ्य यह है कि किसी भी क्रमपरिवर्तन को कुछ संख्या में राइफल फेरबदल क्रमपरिवर्तन के संयोजन से बनाया जा सकता है।
कार्य
आपका कार्य एक प्रोग्राम या फ़ंक्शन करना है जो इनपुट के रूप में एक क्रमचय (आकार एन ) लेता है और छोटी संख्या में राइफल फेरबदल क्रमपरिवर्तन (आकार एन ) का उत्पादन करता है जिसे इनपुट क्रमचय बनाने के लिए संयोजित किया जा सकता है। आपको राइफल को खुद से फेरबदल करने की आवश्यकता नहीं है कि कितने हैं।
यह कोड-गोल्फ है इसलिए उत्तर बाइट्स में कम बाइट के साथ बेहतर स्कोर किए जाएंगे।
आप एक पहचान क्रमचय के लिए या तो 1 या 0 आउटपुट कर सकते हैं।
परीक्षण के मामलों
1,3,2 -> 1
3,2,1 -> 2
3,1,2,4 -> 1
2,3,4,1 -> 1
4,3,2,1 -> 2
4,3,2,1
होना चाहिए 2
? पहले हम मध्य और लाभ 3,1,4,2
में विभाजित होते हैं और फिर हम बीच में फिर से विभाजित हो जाते हैं और उसी क्रमांकन का उपयोग करते हैं