पृष्ठभूमि
बहुत कुशल कार्ड हैंडलर एक ऐसी तकनीक के लिए सक्षम होते हैं जिसके तहत वे आधे में पूरी तरह से एक डेक काटते हैं, फिर पूरी तरह से कार्ड को इंटरलेव करते हैं। यदि वे एक सॉर्ट किए गए डेक के साथ शुरू करते हैं और लगातार पंक्ति में 52 बार इस तकनीक का प्रदर्शन करते हैं, तो डेक को क्रमबद्ध क्रम में बहाल किया जाएगा। आपकी चुनौती कार्डों के एक डेक को पूर्णांक सरणी में लेना है और यह निर्धारित करना है कि क्या इसे केवल फेर फेरों का उपयोग करके सॉर्ट किया जा सकता है।
परिभाषा
गणितीय रूप से, एक फेरस फेरल 2 n तत्वों (किसी भी सकारात्मक पूर्णांक n ) पर एक क्रमपरिवर्तन है जो तत्व i (1-अनुक्रमित) को 2 i (mod 2 n +1) की स्थिति में ले जाता है। हम विषम-लंबाई सूचियों को संभालने में भी सक्षम होना चाहते हैं, इसलिए उस स्थिति में, सूची के अंत में एक तत्व जोड़ें (एक जोकर, यदि आपके पास एक काम है) और फ़ार उपरोक्त के रूप में नई सूची में फेरबदल करते हैं, लेकिन अनदेखा करें सूची के आदेश की जाँच करते समय जोड़ा गया डमी तत्व।
लक्ष्य
एक प्रोग्राम या फ़ंक्शन लिखें जो पूर्णांक और रिटर्न की एक सूची लेता है या एक सत्य को आउटपुट करता है यदि कुछ संख्या में फेरस फेरबदल के कारण उस सूची को निंदनीय क्रम में क्रमबद्ध किया जाएगा (भले ही वह संख्या शून्य हो - छोटी सूचियों को एक सत्य देना चाहिए)। अन्यथा, वापसी या एक झूठा उत्पादन।
उदाहरण
[1,1,2,3,5,8,13,21] => True
[5,1,8,1,13,2,21,3] => True
[9,36,5,34,2,10,1] => True
[1,0] => True
[0] => True
[] => True
[3,2,1] => True
[3,1,2] => False
[9,8,7,6,5,4,3,2,1,0] => True
[9,8,7,6,5,4,3,2,0,1] => False
[3,1,4,1,5,9,2,6,9] => False
[-1,-1,-1,-2] => True
स्कोरिंग
यह कोड-गोल्फ है इसलिए बाइट्स जीत में सबसे छोटा स्रोत है।