কম্পিউটার

একটি বোর্ড বৈধ এন কুইন্স সলিউশন পাইথনে নয় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের একটি n x n ম্যাট্রিক্স একটি দাবা বোর্ডকে প্রতিনিধিত্ব করে। কিছু 1s এবং 0s আছে, যেখানে 1 একটি রাণীকে প্রতিনিধিত্ব করে এবং 0 একটি খালি ঘরকে প্রতিনিধিত্ব করে। আমাদের বোর্ড এন-কুইন ধাঁধার বৈধ সমাধান কিনা তা পরীক্ষা করতে হবে। আমরা জানি যে একটি বোর্ড হল বৈধ N-কুইন সলিউশনের একটি সমাধান যেখানে কোন দুই রানী একে অপরকে আক্রমণ করে না।

সুতরাং, যদি ইনপুট মত হয়

একটি বোর্ড বৈধ এন কুইন্স সলিউশন পাইথনে নয় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

তাহলে আউটপুট হবে True

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:

  • n :=ম্যাট্রিক্সের সারি গণনা
  • সারি :=একটি নতুন সেট, cols :=একটি নতুন সেট, diags :=একটি নতুন সেট, rev_diags :=একটি নতুন সেট
  • আমি 0 থেকে n রেঞ্জের জন্য, কর
      0 থেকে n রেঞ্জে j-এর জন্য
    • করুন
      • যদি ম্যাট্রিক্স[i, j] 1 হয়, তাহলে
        • i সারিতে ঢোকান
        • cols-এ j ঢোকান
        • ডায়াগে (i - j) ঢোকান
        • rev_diags-এ (i + j) ঢোকান
  • যখন সারির আকার, কলের আকার, ডায়াগের আকার, rev_diags-এর আকার n এর মতো একই হলে সত্যে ফিরে আসে, অন্যথায় মিথ্যা

আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:

উদাহরণ

শ্রেণির সমাধান:def solve(self, matrix):n =len(matrix) rows =set() cols =set() diags =set() rev_diags =set() in range(n):j এর জন্য রেঞ্জে(n):যদি ম্যাট্রিক্স[i][j]:rows.add(i) cols.add(j) diags.add(i - j) rev_diags.add(i + j) ফেরত len(rows) ==len(cols) ==len(diags) ==len(rev_diags) ==nob =Solution()matrix =[ [0, 0, 0, 1, 0], [0, 1, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 1, 0, 0], [1, 0, 0, 0, 0]]মুদ্রণ(ob.solve(ম্যাট্রিক্স))

ইনপুট

<প্রি>ম্যাট্রিক্স =[ [0, 0, 0, 1, 0], [0, 1, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 1, 0 , 0], [1, 0, 0, 0, 0]]

আউটপুট

সত্য

  1. প্রদত্ত গাছটি পাইথনে সিমেট্রিক ট্রি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. পাইথনে একটি বাইনারি ট্রি বিএসটি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাইথনে একটি বাইনারি গাছ সম্পূর্ণ কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. প্রদত্ত গ্রাফটি পাইথনে দ্বিপক্ষীয় কি না তা পরীক্ষা করার জন্য প্রোগ্রাম