এন-কুইনস নামক সমস্যার একটি বৈকল্পিক রয়েছে যা কুইনস এবং নাইটদের সাথে জড়িত এবং বলা হয় "যথেষ্ট বেশি কঠিন" 1 । সমস্যার বিবৃতিটি নিম্নরূপ:
আপনাকে অবশ্যই সমান সংখ্যক নাইট ♞ এবং কুইনস board একটি দাবাবোর্ডে রাখতে হবে যাতে কোনও টুকরো অন্য কোনও টুকরো আক্রমণ করে না। আপনি বোর্ডে সর্বাধিক সংখ্যক টুকরো রাখতে পারেন এবং আপনি এটি কতগুলি ভিন্ন উপায়ে করতে পারেন?
এই সালে কোড-গলফ চ্যালেঞ্জ, আপনি একটি ইনপুট দেওয়া হবে এন 3 এবং 32 মধ্যে (একটি উপায় যে আপনার ভাষার জন্য সবচেয়ে উপযুক্ত মধ্যে)। প্রদত্ত এন এর জন্য উপরের সমস্যার শূন্য বা আরও সমাধান হতে পারে। যদি সেখানে কোন সমাধান হয়, তাহলে আপনি অবশ্যই আউটপুট / রিটার্ন কিছুই ( শূন্য , খালি স্ট্রিং , মিথ্যা , ...)। অন্যথায়, আপনাকে অবশ্যই দুটি ফলাফল দিতে হবে:
- আকার এন এর জন্য একটি সমাধান বোর্ড (নীচে দেখুন) যেখানে কোনও টুকরো আক্রান্ত না হয়ে রানী বা একটি নাইট দাবা টুকরো যুক্ত করা সম্ভব নয়। রাণী এবং নাইটের সমান সংখ্যা থাকতে হবে ।
- একটি প্রোগ্রাম উৎস রান কোনো ইনপুট গ্রহণ করে এবং দেয় (ঝ) হতে অন্য সমাধান (অথবা কিছুই একই আকারের জন্য) এন (২) পরবর্তী সমাধান জন্য অন্য প্রোগ্রাম হিসাবে, একই বিন্যাসে, পাশাপাশি (ইত্যাদি ...)।
মনে রাখবেন যে:
- প্রোগ্রামগুলির ক্রমটি একই বোর্ডে দুবার কখনও ফিরে আসতে হবে না, অবশ্যই আকার এন এর সমস্যার জন্য সমস্ত সম্ভাব্য সমাধানগুলি আবরণ করতে হবে এবং অবশেষে শেষ করতে হবে (কোনও আউটপুট উত্পাদনের নয়)।
- আপনি হয় দুটি মান ফেরত দিতে পারেন, একটি ফেরত দিতে পারেন এবং অন্যটি মুদ্রণ করতে পারেন, বা দুটি রিটার্ন মান মুদ্রণ করতে পারেন।
- তবে আপনি যদি বোর্ড এবং পরবর্তী প্রোগ্রাম উভয়ই মুদ্রণ করেন তবে বোর্ডকে অবশ্যই পরবর্তী প্রোগ্রামের একটি অংশ হিসাবে বিবেচনা করা উচিত নয় (আমি মন্তব্যটিতে বোর্ডটি প্রিন্ট করার পরামর্শ দেব বা মান আউটপুট এবং ত্রুটি উভয় প্রবাহই ব্যবহার করব)।
- প্রোগ্রাম-হিসাবে-এ-রিটার্ন-মানটি একটি স্ট্রিং হতে হবে, বন্ধ নয়।
বোর্ড ফর্ম্যাট
- একটি বোর্ড আকারের একটি বর্গ হয় এন ।
- একটি বোর্ড সেল খালি, একটি রানী বা একটি নাইট হতে পারে।
- আপনার অবশ্যই প্রতিটি ধরণের কক্ষের জন্য পৃথক মান নির্বাচন করতে হবে (যেমন বোর্ড প্রিন্ট করার সময় আপনি Q, N এর চেয়ে অন্য চিহ্নগুলি ব্যবহার করতে পারেন)।
- যদি আপনি একটি স্ট্রিং বোর্ডকে ফেরত দেন তবে এটি অবশ্যই বোর্ডের এন 2 টি মানগুলির একটি অর্ডারকৃত সংগ্রহ (যেমন ম্যাট্রিক্স, ভেক্টর বা সারি / কলাম-প্রধান ক্রমের তালিকা, ...) হওয়া উচিত।
আপনি যদি বোর্ডটি মুদ্রণ করেন তবে আপনি এটি স্কোয়ারযুক্ত, বা একটি লাইন হিসাবে মুদ্রণ করতে পারেন। উদাহরণস্বরূপ, 4 আকারের একটি সমাধান বোর্ড নিম্নরূপে মুদ্রণ করা যেতে পারে (শূন্যস্থানগুলির প্রয়োজন হয় না; আপনার বিবেচনার ভিত্তিতে চিহ্নগুলি):
Q - - - - - - - - - - - - - N -
যদি আপনি এটি অনুভব করেন তবে আপনি আউটপুটও করতে পারেন:
♛ · · · · · · · · · · · · · ♞ ·
... তবে এটি যথেষ্ট:
Q-------------N-
আপনি যদি সারি-প্রধান বা কলাম-প্রধান ক্রমে কোষগুলির মাধ্যমে পুনরাবৃত্তি করেন তবে এটি কোনও বিষয় নয়, কারণ এখানে প্রতিসম সমাধান রয়েছে। উদাহরণস্বরূপ, এন = 4 এর সমাধানগুলি হ'ল:
Q------N-------- Q----------N---- Q------------N-- Q-------------N- -Q----------N--- -Q------------N- -Q-------------N --Q---------N--- --Q----------N-- --Q------------N ---QN----------- ---Q----N------- ---Q---------N-- ---Q----------N- ---NQ----------- ----Q------N---- ----Q----------N N------Q-------- -------QN------- -------Q----N--- ---N----Q------- -------NQ------- --------Q------N N----------Q---- ----N------Q---- -----------QN--- -N----------Q--- --N---------Q--- -------N----Q--- -----------NQ--- N------------Q-- --N----------Q-- ---N---------Q-- N-------------Q- -N------------Q- ---N----------Q- -N-------------Q --N------------Q ----N----------Q --------N------Q
আপনি ম্যাট্রিক হিসাবে এন = 5 এর সমাধানগুলিও দেখতে পারেন ; বোর্ড রয়েছে #
, q
এবং n
প্রতীক, যা বিভিন্ন ধরণের খালি কোষ হয় (নীচের আমার উত্তর দেখুন)। স্লেফারের উত্তরে যেমন আমি এন = 6 এর জন্য 2836 বোর্ড গণনা করি (বাইট গণনা হ্রাস করার সময় আমি একটি বাগ প্রবর্তন করেছি, তবে এটি এখন ঠিক করা হয়েছে)।
স্লেফারকে আমার কোডে দুটি নয়, দুটি বাগ খুঁজে পাওয়ার জন্য অনেক ধন্যবাদ।
স্কোর
বাইট জিতে সংক্ষিপ্ত কোড।
আমরা প্রথম প্রোগ্রামটির আকার পরিমাপ করি, যা এন গ্রহণ করে ।
ঘ । কুইনস এবং নাইটস , রজার কে ডাব্লু হুই দ্বারা (সাবধান! একটি সমাধান রয়েছে)
-------------------------N--------Q-
অবৈধ কারণ আরও টুকরো যোগ করা যেতে পারে Q--------N---------------N--------Q-
:)।