কম্পিউটার

C++ এ বাইনারি ম্যাট্রিক্সে 1s দিয়ে গঠিত আকারের পরিধি খুঁজুন


এই সমস্যায়, আমাদেরকে শুধুমাত্র 0 এবং 1 এর সমন্বয়ে nXm আকারের একটি বাইনারি ম্যাট্রিক্স বিন [][][] দেওয়া হয়েছে। আমাদের কাজ হল বাইনারি ম্যাট্রিক্সে 1s দিয়ে গঠিত আকারের পরিধি খুঁজে বের করা।

গৃহীত পরিধিটি সমস্ত দিক থেকে চিত্রটিকে আবৃত করবে, অর্থাৎ

1টি একক মানের জন্য, পরিধি হল 4৷

C++ এ বাইনারি ম্যাট্রিক্সে 1s দিয়ে গঠিত আকারের পরিধি খুঁজুন

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

bin[][] = [1, 0]
   [1, 0]

আউটপুট

6

ব্যাখ্যা

কোষ (0,0) এবং (1, 0) 2 এবং 1 বাহুর একটি আয়তক্ষেত্র তৈরি করে সংযুক্ত রয়েছে৷ পরিধি হল 6৷

সমাধান পদ্ধতি

সমস্যার একটি সহজ সমাধান হল পরিধিতে একটি এবং তাদের অবদানগুলিকে খুঁজে বের করা এবং তারপর মান খুঁজে পেতে সমস্ত যোগ করা৷

ম্যাট্রিক্সের পরিধিতে 1 এর অবদান হল, সর্বাধিক অবদান হল 4, যখন 1 একা পরিধিতে অবদান রাখে

ন্যূনতম অবদান হল 0, যখন 1 সব দিক দিয়ে 1 দ্বারা বেষ্টিত থাকে৷

সুতরাং, ম্যাট্রিক্সের প্রতিটি উপাদানের জন্য, আমাদের এটি 1 কিনা তা পরীক্ষা করতে হবে। All1 এর জন্য, আমরা এর প্রতিবেশীদের খুঁজে বের করব এবং তারপর পরিধিতে অবদান এবং তারপর পরিশেষে পরিধি।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include<iostream>
using namespace std;
#define R 3
#define C 5
int contibutionToPerimeter(int mat[][C], int i, int j) {
   int neighbours = 0;
   if (i > 0 && mat[i - 1][j])
      neighbours++;
   if (j > 0 && mat[i][j - 1])
      neighbours++;
   if (i < R-1 && mat[i + 1][j])
      neighbours++;
   if (j < C-1 && mat[i][j + 1])
      neighbours++;
   return (4 - neighbours);
}
int calcPerimeter(int mat[R][C]){
   int perimeter = 0;
   for (int i = 0; i < R; i++)
      for (int j = 0; j < C; j++)
         if (mat[i][j] == 1)
            perimeter += contibutionToPerimeter(mat, i ,j);
   return perimeter;
}
int main() {
   int mat[R][C] = { {0, 1, 0, 0, 0},
   {1, 1, 1, 1, 0},
   {1, 1, 0, 1, 1} };
   cout<<"The perimeter of shapes from formed with 1s is "<<calcPerimeter(mat);
   return 0;
}

আউটপুট

The perimeter of shapes from formed with 1s is 18

  1. C++ এ প্যারেন্ট পয়েন্টার সহ একটি বাইনারি গাছের ডান ভাইবোন খুঁজুন

  2. C++ এ একটি ত্রিভুজের পরিধি খুঁজুন

  3. C++ এ একটি ম্যাট্রিক্সে একটি প্যাটার্নের অভিযোজন খুঁজুন

  4. C++ এ বাইনারি গাছের পাতা খুঁজুন