কম্পিউটার টিউটোরিয়াল

C++-এ ম্যাট্রিক্সে একই উপাদান ধারণকারী সারিগুলোর সংখ্যা গণনা


আমাদের একটি ম্যাট্রিক্স দেওয়া আছে যাতে পূর্ণসংখ্যা রয়েছে। লক্ষ্য হলো ম্যাট্রিক্সে কতগুলো সারি (row) আছে যাতে সব উপাদান একই (identical)।

যদি ৫×৪ ম্যাট্রিক্স হয়:

15131
11111
53235
77777

উত্তর হবে ২, কারণ সারি ১ (সব ১) এবং সারি ৩ (সব ৭) একই উপাদান ধারণ করে।

উদাহরণ দিয়ে বুঝি

ইনপুট −

matrix = [ 1 1 1 1 ]
           [ 2 3 2 7 ]
           [ 3 3 3 3 ]

আউটপুট − একই উপাদান ধারণকারী সারির সংখ্যা: ২

ব্যাখ্যা − সারি ০ সব ১ ধারণ করে এবং সারি ২ সব ৩ ধারণ করে।

ইনপুট −

matrix = [ 1 2 3 4 ]
           [ 1 2 3 4 ]
           [ 1 2 3 4 ]

আউটপুট − একই উপাদান ধারণকারী সারির সংখ্যা: ০

ব্যাখ্যা − সব সারিতে ভিন্ন ভিন্ন উপাদান রয়েছে।

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

ম্যাট্রিক্সকে ভেক্টর অফ ভেক্টর <int> হিসেবে নেওয়া হয়েছে। প্রতিটি সারিকে ট্রাভার্স করে একটি set<int> তৈরি করা হয়। সারির সব উপাদান সেটে ইনসার্ট করা হয়। শেষে যদি সেটের সাইজ ১ হয়, তবে ওই সারিতে সব উপাদান একই।

  • ম্যাট্রিক্স vector<vector<int>> matrix হিসেবে নিন এবং ইনিশিয়ালাইজ করুন।
  • matrix.size() দিয়ে সাইজ বের করুন।
  • same_rows(vector<vector<int>> matrix, int size) ফাংশন ম্যাট্রিক্স এবং সাইজ নিয়ে একই উপাদানধর্মী সারির কাউন্ট রিটার্ন করে।
  • প্রাথমিক কাউন্ট ০।
  • i=0 থেকে i<size পর্যন্ত লুপে ম্যাট্রিক্স ট্রাভার্স করুন।
  • প্রতিটি সারির জন্য j=0 থেকে j<matrix[i].size() পর্যন্ত লুপ চালান।
  • বর্তমান সারির উপাদান রাখার জন্য set<int> set_row নিন।
  • set_row.insert(matrix[i][j]) দিয়ে উপাদান যোগ করুন।
  • শেষে set_row.size() চেক করুন। যদি ১ হয়, তবে কাউন্ট বাড়ান।
  • সব সারি প্রসেস করার পর count রিটার্ন করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int same_rows(vector<vector<int>> matrix, int size) {
    int count = 0;
    for (int i = 0; i < size; i++) {
        set<int> set_row;
        for (int j = 0; j < matrix[i].size(); j++) {
            set_row.insert(matrix[i][j]);
        }
        int set_size = set_row.size();
        if (set_size == 1) {
            count++;
        }
    }
    return count;
}

int main() {
    vector<vector<int>> matrix = {
        { 2, 2, 2, 2},
        { 5, 5, 5, 5 },
        { 2, 2, 2, 2 },
        {5, 5, 5, 5}
    };
    int size = matrix.size();
    cout << "Count of rows in a matrix that consist of same element are: " << same_rows(matrix, size);
    return 0;
}

আউটপুট

Count of rows in a matrix that consist of same element are: 4
  1. সি++ প্রোগ্রাম: ম্যাট্রিক্সের প্রতিটি কলামের সর্বোচ্চ উপাদান নির্ণয়

  2. সি++ প্রোগ্রাম: সংখ্যা বিভাজ্য করে এমন অঙ্কগুলোর গণনা (Count of Digits Dividing the Number)

  3. অ্যারে উপাদানগুলোর সারপাসার (Surpasser) কাউন্ট (C++)

  4. C++ প্রোগ্রাম: 'k' বের করা যাতে অ্যারে সব উপাদানের সাথে মডুলাস সমান