ভূমিকা
N উপাদানগুলির সাথে একটি তালিকার অভিধানের ক্রমিকাগুলি 0 থেকে n পর্যন্ত গণনা করা যেতে পারে ! - 1. উদাহরণস্বরূপ, 3! = 6 একাধিক বিন্যাসন (1,2,3)
হবে (1,2,3)
, (1,3,2)
, (2,1,3)
, (2,3,1)
, (3,1,2)
, (3,2,1)
।
যখন কোনও তালিকার উপর ক্রমায়ন প্রয়োগ করা হয়, তখন এর উপাদানগুলি ক্রমানুসারে সংখ্যার মতো একই ক্রমে আদেশ করা হয়। উদাহরণস্বরূপ, বিন্যাস প্রয়োগ (2,3,1)
করার জন্য l = (a,b,c)
উৎপাদনের (l[2],l[3],l[1]) = (b,c,a)
।
কোনও ক্রমের বিপরীতটিকে এই ক্রিয়াকলাপকে উল্টো রূপান্তর হিসাবে নির্ধারিত করা হয়, অর্থাত্ একটি আদেশ প্রয়োগ এবং তার বিপরীত (বা বিপরীতে) অ্যারে পরিবর্তন করে না। উদাহরণস্বরূপ, বিপরীত (2,3,1)
হয় (3,1,2)
, যেহেতু (b,c,a)
ফলনের ক্ষেত্রে এটি প্রয়োগ করা হয় (a,b,c)
।
এছাড়াও, ক্রমুয়েশনটিতে প্রয়োগ করা কোনও ক্রমের বিপরীতটি নিজেই পূর্ণসংখ্যা 1… এন দেয় । উদাহরণস্বরূপ, ফলন প্রয়োগ (3,1,2)
করা ।(2,3,1)
(1,2,3)
আমরা এখন ফাংশন নির্ধারণ revind ( এক্স ) সঙ্গে সূচক বিন্যাস বিপরীত বিন্যাস সূচক যেমন এক্স । ( আপনি যদি আগ্রহী হন তবে এটি A056019 )
যেহেতু সূচকের সাথে একটি ক্রমায়ন আমি তালিকার শেষ k আইটেমগুলি কেবল if 0 ≤ i < কে ! সংশোধন করে তা পরিবর্তন করি , তাই আমরা পুনর্নির্দেশকে প্রভাবিত না করে তালিকার শুরুতে যে কোনও সংখ্যক উপাদান যুক্ত করতে পারি ( i )। সুতরাং তালিকার দৈর্ঘ্য ফলাফলকে প্রভাবিত করে না।
চ্যালেঞ্জ
আপনার কাজটি পুনর্নির্দেশ ( এক্স ) প্রয়োগ করা । আপনি একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন লিখবেন যা ইনপুট / আর্গুমেন্ট হিসাবে একক নননেজিটিভ পূর্ণসংখ্যার x গ্রহণ করে এবং ফলাফলটিকে একক নননেজিটিভ পূর্ণসংখ্যার হিসাবে ফলাফল প্রদান করে।
ইনপুট এবং আউটপুট 0-সূচকযুক্ত বা 1-ইনডেক্সড হতে পারে তবে এটি তাদের মধ্যে অবশ্যই সামঞ্জস্য হতে হবে।
বিল্টিনগুলি যা সূচক অনুসারে ক্রমশক্তি তৈরি করে, একটি অনুক্রমের সূচি ফেরত দেয় বা বিপরীত অনুমান নিষিদ্ধ ঘোষণা করে। (বিল্টিনগুলি যা সমস্ত ক্রমজাতকরণ বা পরবর্তী অনুক্রমের অনুমতি দেয়)
স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য।
উদাহরণ
নীচের উদাহরণগুলি 0-সূচকযুক্ত।
Input Output
0 0
1 1
2 2
3 4
4 3
5 5
6 6
13 10
42 51
100 41
1000 3628
2000 3974
10000 30593
100000 303016
রেফারেন্স বাস্তবায়ন (পাইথন 3)
def revind(n):
from math import factorial
from itertools import permutations, count
l = next(filter(lambda x: factorial(x) > n, count(1)))
pms = list(permutations(range(l)))
return [k for k in range(len(pms)) if tuple(pms[n][i] for i in pms[k]) == pms[0]][0]
(a,b,c)
অত্যন্ত অস্পষ্ট সহ খুঁজে পাই । বিপরীত ক্রমানুক্রম কী তা সম্পর্কে যথাযথ ব্যাখ্যা অন্তর্ভুক্ত করুন।
Ụ
(গ্রেড আপ) রয়েছে যা তাদের সংশ্লিষ্ট মান অনুসারে একটি অ্যারের সূচকগুলি সাজায়। এটি 1,…, এন এর ক্রমবিন্যাসকে উল্টাতে ঘটে তবে এটি অন্যান্য ক্রমের জন্য কাজ করে না। হারাম কি অন্তর্নির্মিত? Ụ