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

একটি মিসিং ভেরিয়েবলসহ n সমীকরণ থেকে n ভেরিয়েবল বের করা C++-এ

এই সমস্যায়, আমাদের একটি অ্যারে sum[] দেওয়া আছে যাতে (n-1) ভেরিয়েবলের যোগফল দেওয়া আছে:

Sum[1] = x2 + x3 + x4 + … + xn
Sum[2] = x1 + x3 + x4 + … + xn
...
Sum[i] = x1 + x2 + … + x(i-1) + x(i+1) + … + xn
...
Sum[n] = x1 + x2 + x3 + … + x(n-1)

আমাদের কাজ হল x1, x2, ..., xn এর মান বের করা।

উদাহরণ

ইনপুট

sum[] = {6, 6, 6, 6, 6, 6, 6}

আউটপুট

x1 = 1, x2 = 1, x3 = 1, x4 = 1, x5 = 1, x6 = 1, x7 = 1

ব্যাখ্যা

arr[1] = 1 + 1 + 1 + 1 + 1 + 1 = 6

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

সব ভেরিয়েবলের যোগফল sumX ধরি:

sumX = x1 + x2 + x3 + … + xn

সুতরাং sum অ্যারের মানগুলো:

sum[1] = x2 + x3 + … + xn = sumX - x1
sum[2] = sumX - x2
...
sum[i] = sumX - xi
...
sum[n] = sumX - xn

সব sum অ্যারে যোগ করলে:

Sum[1] + Sum[2] + … + Sum[n] = n×sumX - (x1 + x2 + … + xn)
arrSum = n×sumX - sumX = sumX×(n-1)
sumX = arrSum / (n-1)

এই sumX মান ব্যবহার করে x1, x2… বের করা যায়:

x1 = sumX - sum[1]
x2 = sumX - sum[2]
...
xi = sumX - sum[i]
...
xn = sumX - sum[n]

প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

void calcSumVariables(int sum[], int n) {
    float SUMX = 0;
    for (int i = 0; i < n; i++) {
        SUMX += sum[i];
    }
    SUMX /= (n - 1);
    for (int i = 0; i < n; i++)
        cout << "\nx" << (i + 1) << " = " << (SUMX - sum[i]);
}

int main() {
    int sum[] = {3, 8, 6, 7, 4, 5, 9 };
    int N = sizeof(sum) / sizeof(sum[0]);
    cout << "The value of variables that form the sum are ";
    calcSumVariables(sum, N);
    return 0;
}

আউটপুট

The value of variables that form the sum are

x1 = 4 x2 = -1 x3 = 1 x4 = 0 x5 = 3 x6 = 2 x7 = -2
  1. ব্যালেন্সড BST-এ দেওয়া সমের সাথে একটি জোড়া খুঁজে বের করা C++-তে

  2. C++-এ এক ডিলিশন সহ সর্বোচ্চ সাবঅ্যারে সম

  3. অ্যারেতে এক ক্যারেক্টার মিসম্যাচ সহ স্ট্রিং আছে কিনা (C++)

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