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

C++-এ দুটি ভেরিয়েবলের কোভ্যারিয়েন্স (Covariance) বের করার প্রোগ্রাম


সমস্যা বিবরণ

দুটি র‍্যান্ডম ভেরিয়েবল সেট দেওয়া থাকলে, তাদের কোভ্যারিয়েন্স বের করুন। কোভ্যারিয়েন্স বোঝায় দুটি ভেরিয়েবল কতটুকু একসাথে পরিবর্তন होता है।

সূত্র: Cov(X,Y) = Σ(xi - mean_x)(yi - mean_y) / (n-1)

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

  1. দুটি অ্যারের মিন বের করুন।
  2. প্রতিটি জোড়ার জন্য (xi - mean_x) × (yi - mean_y) যোগ করুন।
  3. (n-1) দিয়ে ভাগ করুন (স্যাম্পল কোভ্যারিয়েন্স)۔

C++ কোড উদাহরণ

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

float mean(float arr[], int n) {
    float sum = 0;
    for (int i = 0; i < n; i++) sum += arr[i];
    return sum / n;
}

float covariance(float arr1[], float arr2[], int n) {
    float sum = 0;
    float mean1 = mean(arr1, n);
    float mean2 = mean(arr2, n);
    for (int i = 0; i < n; i++)
        sum += (arr1[i] - mean1) * (arr2[i] - mean2);
    return sum / (n - 1);
}

int main() {
    float arr1[] = {65.21, 64.75, 65.26, 65.76, 65.96};
    int n = sizeof(arr1) / sizeof(arr1[0]);
    float arr2[] = {67.25, 66.39, 66.12, 65.70, 66.64};
    int m = sizeof(arr2) / sizeof(arr2[0]);
    if (m == n)
        cout << covariance(arr1, arr2, m);
    return 0;
}

আউটপুট

-0.0580511

ব্যাখ্যা

নেগেটিভ কোভ্যারিয়েন্স মানে একটি বেড়লে অন্যটি কমতে রয়েছে (উল্টা সম্পর্ক)।

জটিলতা

  • সময়: O(n)
  • স্থান: O(1)
  1. সি++-এ একটি রেখার মিড-পয়েন্ট বের করার প্রোগ্রাম

  2. সি++-এ ত্রিভুজের কেন্ড্রয়েড (Centroid) বের করার প্রোগ্রাম

  3. C++ প্রোগ্রাম: GCD (মহত্তম সাধারণ ভাজক) নির্ণয়

  4. C++ প্রোগ্রাম: ফ্যাক্টোরিয়াল (Factorial) নির্ণয়