চ্যালেঞ্জ
প্রদত্ত এন পূর্ণসংখ্যার সেটগুলির জন্য, এমন একটি প্রোগ্রাম লিখুন যা এর অভিধানিক সূচককে আউটপুট করবে।
নিয়ম
- ইনপুটটি অবশ্যই ফাঁকা দ্বারা পৃথক পৃথক অনন্য-নেতিবাচক পূর্ণসংখ্যার একটি সেট হতে হবে।
- আপনার অনুমানের লেক্সিকোগ্রাফিক সূচক (0 থেকে n! -1 অন্তর্ভুক্ত) আউটপুট করা উচিত।
- কোনও ক্রমবর্ধমান গ্রন্থাগার বা অন্তর্নির্মিত বিল্ট-ইন ব্যবহার করা যাবে না।
- আপনাকে সূচি খুঁজে পেতে সহায়তা করার জন্য আউটপুটটির ক্রমের অনুমতি বা কোনও উপসেট সেট তৈরি করতে পারে না।
- আপনি পরবর্তী / পূর্ববর্তী (অভিধানে) অনুমানের প্রদত্ত অনুমানটিকে বৃদ্ধি বা হ্রাস করতে পারবেন না।
- বোনাস পয়েন্টস (-10 বাইট) যদি আপনি ফ্যাকটোরিয়ালগুলি ব্যবহার না করে এটি সম্পূর্ণ করার কোনও উপায় খুঁজে পান।
- রানটাইম n = 100 এর জন্য 1 মিনিটের কম হওয়া উচিত
- বাইট গণনা দ্বারা সংক্ষিপ্ততম কোড জয়
- বিজয়ী মঙ্গলবার (জুলাই 22, 2014) নির্বাচিত
অনুমতি সম্পর্কে আরও
- http://www.monkeyphysics.com/articles/read/26/numbering_permutations.html
- পারমিটেশন গ্রুপ অপারেশন
- http://lin-ear-th-inking.blogspot.com/2012/11/enumerating-permutations-using.html
উদাহরণ
0 1 2 --> 0
0 2 1 --> 1
1 0 2 --> 2
1 2 0 --> 3
2 0 1 --> 4
2 1 0 --> 5
0 1 2 3 4 5 6 7 --> 0
0 1 2 3 4 5 7 6 --> 1
0 1 2 3 4 6 5 7 --> 2
1 3 5 17 --> 0
781 780 779 13 --> 23
81 62 19 12 11 8 2 0 --> 40319
195 124 719 1 51 6 3 --> 4181