কম্পিউটার

পাইথনে একটি প্রদত্ত ম্যাট্রিক্সে দ্বীপের সংখ্যা গণনা করার প্রোগ্রাম


ধরুন আমাদের একটি বাইনারি ম্যাট্রিক্স আছে, আমাদের ম্যাট্রিক্সে দ্বীপের সংখ্যা বের করতে হবে। এখানে 1 হল জমির জন্য এবং 0 হল জলের জন্য, তাই একটি দ্বীপ হল 1s-এর একটি দল যা প্রতিবেশী এবং যার পরিধি জল দ্বারা বেষ্টিত৷ এখানে আমরা বিবেচনা করছি প্রতিবেশীরা শুধুমাত্র অনুভূমিক বা উল্লম্ব হতে পারে, তির্যক নয়।

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

1 0 1 0 0
0 0 1 0 0
0 1 1 0 0
0 0 0 0 0
1 1 0 1 1
1 1 1 0 1

তাহলে আউটপুট হবে 4.

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

  • একটি ফাংশন explore() সংজ্ঞায়িত করুন। এটি সারি, কল, ম্যাট্রিক্স
  • নেবে
  • যদি সারি এবং কল ম্যাট্রিক্সের পরিসরে না হয় বা ম্যাট্রিক্স[সারি, কল] 0 হয়, তাহলে
    • প্রত্যাবর্তন
  • ম্যাট্রিক্স[সারি, কল] :=0
  • অন্বেষণ করুন(সারি + 1, কল, ম্যাট্রিক্স)
  • অন্বেষণ করুন(সারি - 1, কল, ম্যাট্রিক্স)
  • অন্বেষণ করুন(সারি, কল + 1, ম্যাট্রিক্স)
  • অন্বেষণ করুন(সারি, কল - 1, ম্যাট্রিক্স)
  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -
  • যদি ম্যাট্রিক্স শূন্য হয়, তাহলে
    • রিটার্ন 0
  • দ্বীপসমূহ :=0
  • পরিসীমা 0 থেকে ম্যাট্রিক্সের সারি গণনার জন্য, করুন
    • পরিসীমা 0 থেকে ম্যাট্রিক্সের কলাম সংখ্যার জন্য, করুন
      • যদি ম্যাট্রিক্স[সারি, কল] 1 এর মত হয়, তাহলে
        • দ্বীপ :=দ্বীপ + 1
        • অন্বেষণ (সারি, কল, ম্যাট্রিক্স)
  • প্রত্যাবর্তন দ্বীপ

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

উদাহরণ

শ্রেণীর সমাধান:def explore(self, row, col, matrix):if ( row <0 or col <0 or row> len(matrix) - 1 or col> len (matrix[0]) - 1 বা matrix [row][col] ==0):রিটার্ন ম্যাট্রিক্স[row][col] =0 self.explore(row + 1, col, matrix) self.explore(row - 1, col, matrix) self.explore(row , col + 1, matrix) self.explore(row, col - 1, matrix) def solve(self, matrix):ম্যাট্রিক্স না হলে:রেঞ্জের সারি (len(matrix)) এর জন্য 0 islands =0 ফেরত দিন:col in এর জন্য range(len(matrix[0]):if matrix[row][col] ==1:islands +=1 self.explore(row, col, matrix) return islandsob =Solution() matrix =[ [1, 0] , 1, 0, 0], [0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 0, 0, 0, 0], [1, 1, 0] , 1, 1], [1, 1, 1, 0, 1]]মুদ্রণ(ob.solve(matrix))

ইনপুট

<প্রে>[ [1, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 0, 0, 0, 0] ], [1, 1, 0, 1, 1], [1, 1, 1, 0, 1]]

আউটপুট

4

  1. পাইথনে n নোড সহ BST সংখ্যা গণনা করার প্রোগ্রাম

  2. পাইথনে প্রদত্ত প্রান্তগুলি অন্তর্ভুক্ত করে এমন অনন্য পাথের সংখ্যা গণনা করার প্রোগ্রাম

  3. পাইথনে ম্যাট্রিক্সে বেষ্টিত দ্বীপের সংখ্যা গণনা করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং এর সেট ব্যবহার করে স্বর সংখ্যা গণনা করার জন্য