ফানকুচ একটি ক্লাসিক বেনমার্ক প্রোগ্রাম। নামটি জার্মান "ফ্যাফানকুচেন" থেকে এসেছে - প্যানকেকস - প্যানকেকের স্তুপগুলিতে উল্টানো আলগোরিদিমের সাদৃশ্যটির জন্য। নীচে সংখ্যার একটি ফানকুচ ক্রম গঠিত হয়:
Perm 1 ..... n of এর অনুক্রমটি নিন, উদাহরণস্বরূপ: {4,2,1,5,3}} এখানে প্রথম উপাদানটি নিন 4 এবং প্রথম 4 টি উপাদানের ক্রমটি বিপরীত করুন: {5,1,2,4,3}} প্রথম উপাদানটি 1 না হওয়া পর্যন্ত এটি পুনরাবৃত্তি করুন, সুতরাং উল্টানো আরও কিছু পরিবর্তন করবে না: {3,4,2,1,5}, {2,4,3,1,5},, 4,2,3, 1,5}, 1,3,2,4,5}
আপনাকে এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হবে যা বর্ণানুক্রমিক অক্ষরের স্ট্রিংয়ের জন্য ফ্যানকুচের মতো ক্রম গণনা করে। তালিকার কতগুলি উপাদান প্রতিবার উল্টানো উচিত তা বোঝাতে সংখ্যাগুলি ব্যবহার না করে বর্ণমালায় একটি বর্ণের অবস্থান ব্যবহার করা উচিত। উদাহরণস্বরূপ, একটি নেতৃস্থানীয় cইঙ্গিত দেয় যে আপনার প্রথম 3 টি উপাদানের aক্রমটি বিপরীত করা উচিত, যখন একটি শীর্ষস্থানীয় নির্দেশ করে যে ক্রমটি সম্পূর্ণ।
ইনপুট
স্টিডিনের মাধ্যমে স্ট্রিং বা ফাংশন আর্গুমেন্ট হিসাবে ইনপুট সরবরাহ করা হবে। স্ট্রিংটিতে 1 থেকে 26 টি পৃথক ছোট হাতের অক্ষর থাকবে। স্ট্রিংগুলিতে এমন অক্ষর থাকবে না যার সমতুল্য সূচকটি ফ্যানকুচ অ্যালগরিদমকে উপস্থিতির চেয়ে আরও বেশি উপাদানগুলি ফ্লিপ করতে পারে।
আউটপুট
প্রোগ্রামিং বা ফাংশনগুলিতে ফ্যানকুচ অ্যালগরিদম প্রয়োগ করে উত্পাদিত শর্তগুলির ক্রমগুলি aপ্রারম্ভিক হওয়া বা প্রিন্ট করা উচিত যতক্ষণ না প্রাথমিক স্ট্রিং সহ একটি শীর্ষস্থানীয় উপস্থিত না হয় encountered উদাহরণস্বরূপ, যদি ইনপুট হয় তবে bcaআপনি মুদ্রণ করতে পারেন:
bca
cba
abc
মুদ্রিত ফলাফলগুলি যেকোন যুক্তিসঙ্গত বিভাজক-কমা, নিউলাইনগুলি ব্যবহার করতে পারে wh
অন্য উদাহরণ হিসাবে, যদি আপনার ইনপুট হয় eabdcআপনি ফিরে আসতে পারেন:
("eabdc"
"cdbae"
"bdcae"
"dbcae"
"acbde")
বিধি এবং স্কোরিং
এটি কোড-গল্ফ - সংক্ষিপ্ততম প্রোগ্রামের জয়। স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।
proc fcmpএখানে খুব বেশি পেতে পারি না ।