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

C++ ব্যবহার করে সর্বোচ্চ জ্যামিতিক গড় যেন থাকে এমন সাবসেট বের করা

এখানে একটি অ্যারে A দেওয়া আছে কিছু এলিমেন্টের সাথে। আমাদের সেটি সাবসেট বের করতে হবে যেটির জ্যামিতিক গড় (geometric mean) সর্বোচ্চ। ধরি A = [1, 5, 7, 2, 0], তবে সর্বোচ্চ জ্যামিতিক গড়-wala সাবসেট হবে [5, 7]।

এটি সমাধান করতে আমরা একটা ট্রিক ফলো করব, আমরা গড় বের করব না, কারণ আমরা জানি সবচেয়ে বড় দুটি এলিমেন্টই সর্বোচ্চ জ্যামিতিক গড় তৈরি করবে, তাই সবচেয়ে বড় দুটি এলিমেন্ট রিটার্ন করব সাবসেট হিসেবে।

উদাহরণ কোড

#include <iostream>
using namespace std;

void largestGeoMeanSubset(int arr[], int n) {
    if (n < 2) {
        cout << "Very few number of elements";
        return;
    }
    int max = INT_MIN, second_max = INT_MIN;
    for (int i = 0; i < n; i++) {
        if (arr[i] > max) {
            second_max = max;
            max = arr[i];
        } else if (arr[i] > second_max)
            second_max = arr[i];
    }
    cout << second_max << ", " << max;
}

int main() {
    int arr[] = {1, 5, 7, 2, 0};
    int n = sizeof(arr) / sizeof(arr[0]);
    largestGeoMeanSubset(arr, n);
}

আউটপুট

5, 7
  1. C++ ব্যবহার করে ম্যাট্রিক্সে সর্বোচ্চ যোগফল করা কলাম বের করা

  2. দেওয়া পার্থক্যের সাথে একটি জোড়া খুঁজে বের করা C++-এ

  3. ডুপ্লিকেট অনুমতির সাথে অ্যারেতে ফিক্সড পয়েন্ট খুঁজে বের করা C++-এ

  4. C++-এ অ্যারেতে সর্বোচ্চ GCD वाली পেয়ার বের করা