एन विशिष्ट वस्तुओं की एक सूची को देखते हुए, मैं एक समय में केवल एक जोड़ी मूल्यों को स्वैप करने वाले आइटमों के प्रत्येक क्रमपरिवर्तन के माध्यम से कैसे कदम उठा सकता हूं? (मुझे लगता है कि यह संभव है, यह निश्चित रूप से ऐसा होना चाहिए जैसा कि यह होना चाहिए।)सभी क्रमपरिवर्तनों के माध्यम से एक समय में एक स्वैप
जो मैं खोज रहा हूं वह एक पुनरावर्तक है जो स्वैप करने के लिए वस्तुओं की अगली जोड़ी के सूचकांक उत्पन्न करता है, जैसे कि अगर पुनरावृत्त एन! -1 बार यह एन के माध्यम से कदम होगा! कुछ क्रम में सूची के क्रमपरिवर्तन। यदि इसे एक बार फिर से चालू करना सूची को अपने प्रारंभिक क्रम में पुनर्स्थापित करेगा जो बोनस होगा, लेकिन यह एक आवश्यकता नहीं है। यदि सभी जोड़ों में पहली (resp। अंतिम) तत्व शामिल होता है जो कि एक जोड़ी में से एक है, ताकि फ़ंक्शन को केवल एक मान वापस करने की आवश्यकता हो, जो कि बोनस भी होगा।
उदाहरण: - 3 तत्वों के लिए, आप अंतिम तत्व को क्रमशः पहले और दूसरे तत्वों के साथ क्रमशः लूप के माध्यम से लूप करने के लिए स्वैप कर सकते हैं, जैसे: (एबीसी) स्वैप 0-2 => (सीबीए) 1-2 (कैब) 0-2 (बीएसी) 1-2 (बीसीए) 0-2 (एसीबी)।
मैं सी में कार्यान्वित कर रहा हूं, लेकिन शायद अधिकांश भाषाओं में समाधान निकाल सकता हूं।
लेस्टिकोग्राफिक ऑर्डर में क्रमिकता के माध्यम से http://stackoverflow.com/users/91671/lbushkin –