काम
परिभाषाएं
अंक {1,2,3,4,5} और उनके सभी क्रमपरिवर्तन पर विचार करें। हम एक साधारण चाल द्वारा इन 5 बिंदुओं के संभावित क्रमों की कुल संख्या पा सकते हैं: इन बिंदुओं के साथ 5 स्लॉट्स को भरना, पहले स्लॉट में 5 संभावित नंबर होंगे, दूसरा 4 (जैसा कि पहले स्लॉट को भरने के लिए उपयोग किया गया है) तीसरा 3 और इसी तरह। इस प्रकार क्रमपरिवर्तन की कुल संख्या 5 * 4 * 3 * 2 * 1 है; यह 5 होगा! क्रमपरिवर्तन या 120 क्रमपरिवर्तन। हम इसे सममित समूह S5 के रूप में सोच सकते हैं, और फिर सममित समूह Sn में n! or (n*n-1*n-2...*1)
क्रमपरिवर्तन होगा ।
एक "सम" क्रमपरिवर्तन वह होता है जहाँ सम चक्र की सम संख्या होती है। यह समझना आसान है, जब चक्रीय अंकन में लिखा जाता है, उदाहरण के लिए (1 2 3)(4 5)
परमिट 1->2->3->1
और 4->5->4
एक 3 लंबाई चक्र (1 2 3)
और एक 2 लंबाई चक्र है (4 5)
। जब किसी क्रमांकन को विषम के रूप में वर्गीकृत किया जाता है या यहां तक कि हम विषम लंबाई के चक्रों को अनदेखा कर देते हैं और कहते हैं कि यह क्रमांकन [ (1 2 3)(4 5)
] विषम है क्योंकि इसमें विषम संख्या {1} सम लंबाई चक्र है। यहां तक कि उदाहरण:
(1)(2 3)(4 5)
= दो 2 लंबाई चक्र | EVEN |(1 2 3 4 5)
= कोई लंबाई चक्र भी नहीं | EVEN | * ध्यान दें कि यदि कोई भी लंबाई चक्र मौजूद नहीं है, तो क्रमपरिवर्तन भी है।
अजीब उदाहरण:
(1 2)(3 4 5)
= एक 2 लंबाई चक्र | ODD |(1)(2 3 4 5)
= एक 4 लंबाई चक्र | ODD |
जैसा कि किसी भी सममित समूह में क्रमपरिवर्तन का आधा हिस्सा है, यहां तक कि हम समूह को प्रत्यावर्ती समूह N भी कह सकते हैं, इसलिए S5 = 120 A5 = 60 क्रमपरिवर्तन।
अंकन
क्रमचय, इसके लिए, कम से कम, चक्रीय अंकन में लिखा जाना चाहिए, जहां प्रत्येक चक्र अलग-अलग कोष्ठक में है और प्रत्येक चक्र आरोही क्रम में जाता है। उदाहरण के लिए (1 2 3 4 5)
नहीं (3 4 5 1 2)
। और एकल संख्या वाले चक्रों के लिए, जैसे: (1)(2 3 4)(5)
एकल / निश्चित बिंदुओं को अर्थ से बाहर रखा जा सकता है (1)(2 3 4)(5) = (2 3 4)
। लेकिन पहचान {वह बिंदु जहां सभी बिंदु तय किए जाते हैं (1)(2)(3)(4)(5)
} को ()
केवल इसे दर्शाने के लिए लिखा जाना चाहिए ।
चुनौती
मैं आपको कम से कम कोड में, किसी भी सकारात्मक पूर्णांक को इनपुट {1,2,3,4 ...} के रूप में लेना चाहूंगा और वैकल्पिक समूह के सभी क्रमपरिवर्तन को प्रदर्शित करूंगा जहां n इनपुट / सभी सम है एसएन के क्रमपरिवर्तन। उदाहरण के लिए:
Input = 3
()
(1 2 3)
(1 3 2)
तथा
Input = 4
()
(1 2)(3 4)
(1 3)(2 4)
(1 4)(2 3)
(1 2 3)
(1 3 2)
(1 2 4)
(1 4 2)
(1 3 4)
(1 4 3)
(2 3 4)
(2 4 3)
और उदाहरण के रूप में मैं एक लंबाई के सभी चक्रों को समाप्त करने के लिए चाहूंगा, और पहचान के लिए: कुछ भी नहीं के आउटपुट ,
()
{न केवल कोष्ठक बल्कि जो भी आप अलग-अलग क्रमपरिवर्तन दिखाने के लिए उपयोग कर रहे हैं} या id
स्वीकार्य हैं।
अतिरिक्त कारोबार
आपके द्वारा यहां और अधिक जानकारी प्राप्त की जा सकती है:
सौभाग्य
और जैसा कि यह कोडगॉल्फ है जो भी सबसे कम बाइट्स जीत में अल्टरनेटिंग ग्रुप एन के क्रमपरिवर्तन को प्रिंट कर सकता है।
(2 3 1 4)
को आरोही क्रम में कैसे डालूं? क्या आपका मतलब है कि हमें सबसे छोटा तत्व सामने रखना चाहिए?
(2 3 1 4)
कि इसके सबसे छोटे तत्व के साथ 2->3->1->4->2
लिखा जा सकता है(1 4 2 3)
[[1, 2], [3, 4]]
बजाय उदाहरण के लिए आउटपुट की अनुमति है(1 2)(3 4)
?