परिचय
मैंने पहले की चुनौती में चींटियों के क्रमपरिवर्तन के वर्ग को परिभाषित किया । एक अनुस्मारक के रूप में, 0 से r-1 तक की संख्याओं का एक क्रमपरिवर्तन p है, यदि प्रत्येक प्रविष्टि p [i] को छोड़कर, पहले कुछ है, तो कुछ पहले से प्रवेश p [ik] है जैसे कि p [i] == p [ ik] ± १ । एक मजेदार तथ्य के रूप में, मैंने यह भी कहा कि आर there 1 के लिए , लंबाई आर के बिल्कुल 2 आर -1 चींटी क्रमपरिवर्तन हैं । इसका मतलब है कि लंबाई आर के बंटी क्रमपरिवर्तन और लंबाई -1 के बाइनरी वैक्टर के बीच एक-से-एक पत्राचार है। इस चुनौती में, आपका कार्य इस तरह के पत्राचार को लागू करना है।
काम
आपका कार्य एक प्रोग्राम या फ़ंक्शन लिखना है जो लंबाई 1 ≤ n , 99 के द्विआधारी वेक्टर में लेता है , और लंबाई n + 1 के एक चींटियों के क्रमपरिवर्तन को आउटपुट करता है । क्रमपरिवर्तन 0-आधारित 1-आधारित हो सकता है (लेकिन यह सुसंगत होना चाहिए), और इनपुट और आउटपुट किसी भी उचित प्रारूप में हो सकते हैं। इसके अलावा, विभिन्न आदानों को हमेशा अलग आउटपुट देना चाहिए; इसके अलावा, आप जो भी चींटियों की अनुमति चाहते हैं, उन्हें वापस करने के लिए स्वतंत्र हैं।
सबसे कम बाइट गिनती जीतती है।
उदाहरण
(0-आधारित) लंबाई के चींटियों के क्रमपरिवर्तन 4 हैं
0 1 2 3
1 0 2 3
1 2 0 3
1 2 3 0
2 1 0 3
2 1 3 0
2 3 1 0
3 2 1 0
और आपके कार्यक्रम को उनमें से प्रत्येक के लिए लंबाई 3 के आठ बिट वैक्टर में से एक को वापस करना चाहिए:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1
और 0 0 1
अलग-अलग लंबाई के आउटपुट देना चाहिए।