গতকাল আমি এই প্রশ্নটি জিজ্ঞাসা করলাম riffle shuffles সম্পর্কে। দেখে মনে হচ্ছে গতকালের প্রশ্নটি কিছুটা শক্ত ছিল তাই এই প্রশ্নটি সম্পর্কিত তবে অনেক সহজ কাজ।
আজ আপনাকে নির্ধারণ করতে বলা হচ্ছে যদি কোনও আদেশটি আসলে রিফলের বদল হয়। রিফল শিফলে আমাদের সংজ্ঞাটি আমাদের শেষ প্রশ্ন থেকে অভিযোজিত:
এলোমেলো প্রথম অংশটি বিভাজন। বিভক্ত বিভাজনে কার্ডগুলির ডেক দুটি। দুটি বিভাগ অবশ্যই অবিচ্ছিন্ন, পারস্পরিক একচেটিয়া এবং অবসন্ন হতে হবে। প্রকৃত বিশ্বে আপনার বিভাজনটিকে যতটা সম্ভব সম্ভব হিসাবে ঘনিষ্ঠ করে তুলতে চান, তবে এই চ্যালেঞ্জের ক্ষেত্রে এটি বিবেচ্য নয়, অবনতিযুক্ত (একটি পার্টিশন খালি রয়েছে) সহ সমস্ত পার্টিশন সমান বিবেচ্য।
পার্টিশন হওয়ার পরে কার্ডগুলি একসাথে এমনভাবে বিভক্ত করা হয় যাতে কার্ডগুলি পার্টিশনের মধ্যে তারা যার সদস্য হয় তার আপেক্ষিক ক্রম বজায় রাখে । উদাহরণস্বরূপ, যদি কার্ড এ ডেকে কার্ড বি এর আগে হয় এবং কার্ড এ এবং বি একই পার্টিশনে থাকে তবে কার্ড এ অবশ্যই চূড়ান্ত ফলাফলের কার্ড বি এর আগে হওয়া উচিত , এমনকি তাদের মধ্যে কার্ডের সংখ্যা বৃদ্ধি পেয়েছে কিনা। যদি এ এবং বি বিভিন্ন পার্টিশনে থাকে তবে তারা চূড়ান্ত ফলাফলের সাথে, কোনও প্রারম্ভিক অর্ডার নির্বিশেষে যে কোনও ক্রমে থাকতে পারে।
প্রতিটি রিফেল শ্যাফেলকে তখন কার্ডের মূল ডেকের অনুক্রম হিসাবে দেখা যেতে পারে। উদাহরণস্বরূপ আদেশ
1,2,3 -> 1,3,2
একটি রিফাল পরিবর্তন আপনি ডেক বিভক্ত যদি
1, 2 | 3
আমরা দেখতে পাচ্ছি যে প্রতিটি কার্ডের 1,3,2
বিভাজনে প্রতিটি অন্যান্য কার্ডের জন্য একই আপেক্ষিক ক্রম রয়েছে। 2
এখনও পরে 1
।
অন্যদিকে নিম্নলিখিত অনুক্রমটি একটি রাইফেল বদল নয় ।
1,2,3 -> 3,2,1
আমরা এটি দেখতে পারি কারণ দুটি (অ-তুচ্ছ) পার্টিশনের জন্য
1, 2 | 3
1 | 2, 3
কার্ডের একটি জুড়ি রয়েছে যা তাদের আপেক্ষিক ক্রমগুলি বজায় রাখে না। প্রথম পার্টিশনে উপস্থিত 1
এবং 2
তাদের ক্রম পরিবর্তন করেন, দ্বিতীয় পার্টিশন যখন 2
এবং 3
তাদের ক্রম পরিবর্তন করুন।
কার্য
যেকোন যুক্তিসঙ্গত পদ্ধতির মাধ্যমে ক্রমান্বয়ে প্রদত্ত, নির্ধারণ করুন যে এটি কোনও বৈধ রিফেল শফলের প্রতিনিধিত্ব করে কিনা। আপনার দুটি পৃথক ধ্রুবক মান আউটপুট করা উচিত "হ্যাঁ, এটি একটি রাইফেল শফল" এবং "হ্যাঁ, এটি একটি রিফলার বদল নয়" এর জন্য একটি।
এটি কোড-গল্ফ তাই কম বাইট ভাল হওয়ার সাথে উত্তরগুলি বাইটে স্কোর করা হবে।
পরীক্ষার মামলা
1,3,2 -> True
3,2,1 -> False
3,1,2,4 -> True
2,3,4,1 -> True
4,3,2,1 -> False
1,2,3,4,5 -> True
1,2,5,4,3 -> False
5,1,4,2,3 -> False
3,1,4,2,5 -> True
2,3,6,1,4,5 -> False
[3,1,4,2,5]
।
[2,3,6,1,4,5]
।
[0, ..., n-1]
পরিবর্তে এর অনুমতি নিতে পারি [1, ..., n]
?
0
তবে সত্যের পক্ষে কোন পূর্ণসংখ্যা রয়েছে[1, +∞)
?