কম্পিউটার

C++ এ একটি সমতলে সমান্তরালগ্রামের গণনা


আমাদের একটি সমতল দেওয়া হয়েছে যেখানে সমান্তরালগ্রাম গঠনকারী বিন্দু রয়েছে এবং কাজটি হল প্রদত্ত বিন্দুগুলি ব্যবহার করে গঠিত হতে পারে এমন সমান্তরালগ্রামের গণনা করা। সমান্তরালগ্রামে চতুর্ভুজের বিপরীত বাহুগুলি সমান্তরাল এবং তাই বিপরীত কোণগুলি সমান।

ইনপুট

int a[] = {0, 2, 5, 5, 2, 5, 2, 5, 2}
Int b[] = {0, 0, 1, 4, 3, 8, 7, 11, 10}

C++ এ একটি সমতলে সমান্তরালগ্রামের গণনা

আউটপুট − একটি সমতলে সমান্তরালগ্রামের গণনা − 3

ব্যাখ্যা − আমাদেরকে (x, y) পয়েন্ট দেওয়া হয়েছে এবং এই বিন্দুগুলি ব্যবহার করে আমরা চিত্রে দেখানো হিসাবে 3টি সমান্তরালগ্রামের একটি গণনা তৈরি করতে পারি।

ইনপুট

a[] = {0, 3, 1, 4, 1, 5}
b[] = {0, 1, 3, 4, 4, 4}

আউটপুট − একটি সমতলে সমান্তরালগ্রামের গণনা − 1

ব্যাখ্যা − আমাদেরকে (x, y) পয়েন্ট দেওয়া হয়েছে এবং এই বিন্দুগুলি ব্যবহার করে আমরা চিত্রে দেখানো হিসাবে 1 সমান্তরালগ্রামের একটি গণনা তৈরি করতে পারি।

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

  • x-অর্ডিনেট মানের জন্য অ্যারে_1 ইনপুট করুন এবং y-স্থানাঙ্ক মানের জন্য অ্যারে_2

  • অ্যারে_1 এর আকার গণনা করুন এবং আরও প্রক্রিয়াকরণের জন্য ফাংশনে ডেটা পাস করুন

  • টাইপ ম্যাপের একটি ভেরিয়েবল তৈরি করুন যা জোড়া তৈরি করবে এবং পূর্ণসংখ্যার প্রকারের ডেটা সংরক্ষণ করবে

  • গঠিত হতে পারে এমন মোট সমান্তরালগ্রাম সংরক্ষণ করতে একটি অস্থায়ী পরিবর্তনশীল গণনা তৈরি করুন

  • 0 থেকে একটি অ্যারে_1

    আকার পর্যন্ত লুপ ফর i শুরু করুন
  • i+1 থেকে একটি অ্যারে_1

    আকার পর্যন্ত j এর জন্য আরেকটি লুপ শুরু করুন
  • লুপের ভিতরে, a[i] + a[j] এর সাথে a_mid সেট করুন এবং b[i] + b[j]

    এর সাথে b_mid সেট করুন
  • এবং array_1 এবং array_2-এর মাঝামাঝি মান 1 দ্বারা বৃদ্ধি করুন

  • আরেকটি লুপ শুরু করুন যা শুরু থেকে শেষ পর্যন্ত মানচিত্রটি অতিক্রম করবে

  • লুপের ভিতরে, জোড়ার y মান দিয়ে একটি অস্থায়ী পরিবর্তনশীল সেট করুন

  • এবং temp * (temp -1 ) / 2

    সহ গণনা সেট করুন
  • রিটার্ন গণনা

  • ফলাফল প্রিন্ট করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//Count of parallelograms in a plane
int parallelogram(int a[], int b[], int size){
   map<pair<int, int>, int> um;
   int count = 0;
   for (int i=0; i<size; i++){
      for (int j=i+1; j<size; j++){
         int a_mid = a[i] + a[j];
         int b_mid = b[i] + b[j];
         um[make_pair(a_mid, b_mid)]++;
      }
   }
   for (auto it = um.begin(); it != um.end(); it++){
      int temp = it->second;
      count+= temp*(temp - 1)/2;
   }
   return count;
}
int main(){
   int a[] = {0, 3, 1, 4, 1, 5};
   int b[] = {0, 1, 3, 4, 4, 4};
   int size = sizeof(a) / sizeof(int);
   cout<<"Count of parallelograms in a plane: "<<parallelogram(a, b, size) << endl;
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of parallelograms in a plane: 1

  1. C++-এ চমৎকার সাবরে-এর সংখ্যা গণনা করুন

  2. C++ এ সমস্ত ক্রমবর্ধমান অনুক্রম গণনা করুন

  3. C++ এ সাজানো বাইনারি অ্যারেতে 1 এর সংখ্যা গণনা করুন

  4. একটি অ্যারেতে ইনভার্সন গণনা করার জন্য C++ প্রোগ্রাম