কম্পিউটার

C++ এ প্রদত্ত সীমাবদ্ধতা সহ N*N ম্যাট্রিক্সে সর্বাধিক সংখ্যা


নিম্নলিখিত সীমাবদ্ধতাগুলির সাথে একটি বাইনারি ম্যাট্রিক্সে সর্বাধিক সংখ্যা খুঁজে বের করা টাস্কটি দেওয়া হয়েছে৷

দুটি পূর্ণসংখ্যা N এবং X দেওয়া আছে যেখানে X<=N। বাইনারি ম্যাট্রিক্সের আকার N*N হওয়া উচিত এবং X*X আকারের প্রতিটি সাব-ম্যাট্রিক্সে অন্তত একটি শূন্য থাকা উচিত।

আসুন এখন বুঝি একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে −

ইনপুট − N=4, X=2

আউটপুট − 12

ব্যাখ্যা − ফলাফল ম্যাট্রিক্স হবে −

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

ইনপুট − N=7, X=3

আউটপুট − 45

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • সর্বাধিক সংখ্যাগুলি পেতে, প্রথমে আমাদের প্রদত্ত ম্যাট্রিক্সে প্রয়োজনীয় ন্যূনতম শূন্য সংখ্যা খুঁজে বের করতে হবে৷

    সমস্ত ম্যাট্রিক্সে একটি সাধারণ প্যাটার্ন পর্যবেক্ষণ করে, এটি দেখা যায় যে শূন্যের সংখ্যা =(N / X) 2

    সুতরাং সর্বাধিক সংখ্যা =ম্যাট্রিক্সের মোট উপাদান - শূন্যের সংখ্যা\

  • ফাংশনে MaxOne() int-এর একটি ভেরিয়েবল Z তৈরি করুন এবং এতে প্রয়োজনীয় ন্যূনতম শূন্য সংখ্যা সংরক্ষণ করুন যা (N / X) 2 এর সমান।

  • তারপর ম্যাট্রিক্সের মোট আকার সঞ্চয় করতে অন্য একটি পরিবর্তনশীল মোট =N*N টাইপের int শুরু করুন।

  • তারপর শেষ পর্যন্ত ইনিশিয়ালাইজ করুন int ans =মোট – Z চূড়ান্ত উত্তর সংরক্ষণ করতে এবং উত্তর ফেরত দিতে।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int MaxOne(int N, int X){
   // Minimum number of zeroes that are needed
   int Z = (N / X);
   Z = Z * Z;
   /* Totol elements in matrix = square of the size of the matrices*/
   int total =N * N;
   //Final answer
   int ans = total - Z;
   return ans;
}
int main(){
   int N = 4;
   int X = 2;
   cout << MaxOne(N, X);
   return 0;
}

আউটপুট

আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −

12

  1. C++ এ প্রদত্ত সীমাবদ্ধতা সহ একটি ম্যাট্রিক্সে দীর্ঘতম পথ খুঁজুন

  2. C++ এ একটি ম্যাট্রিক্সে গহ্বরের সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে ম্যাট্রিক্সে সর্বোচ্চ যোগফল সহ কলাম খুঁজুন।

  4. প্রদত্ত পণ্যের সাথে একটি জোড়া C++ এ ম্যাট্রিক্সে বিদ্যমান কিনা তা পরীক্ষা করুন