কম্পিউটার

C++ এ অনুপস্থিত n সমীকরণ থেকে n-ভেরিয়েবল খুঁজুন


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

Sum[1] = x2 + x3 + x4 + … xn
Sum[2] = x1 + x3 + x4 + … xn
.
.
Sum[i] = x2 + x3 + x4 + … x(i-1) + x(i+1) + … + xn
.
.
Sum[n] = x1 + x2 + x3 + … x(n-1)
Our task is to find the value of 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[1] = x2 + x3 + x4 + … xn
= -x1 + x1 + x2 + x3 + x4 + … xn
= sumX - x1

একইভাবে,

sum[2] = sumX - x2
sum[3] = sumX - x3
.
sum[i] = sumX - xi
.
sum[n] = sumX - xn

Sum[1] + sum[2] + … sum[n] = sumX - x1 + sumX - x2 + … + sumX - xn
arrSum = n*sumX - (x1 + x2 + x3 … xn)
arrSum = n*SumX - (x1 + x2 + x3 … xn)
arrSum = 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;
}

আউটপুট

যোগফল গঠন করে এমন চলকের মান হল

x1 = 4
x2 = -1
x3 = 1
x4 = 0
x5 = 3
x6 = 2
x7 = -2

  1. C++ এ একটি সুষম BST-এ প্রদত্ত যোগফল সহ একটি জোড়া খুঁজুন

  2. C++ এ একটি মুছে ফেলার সাথে সর্বাধিক সাবারে যোগফল

  3. একটি অ্যারেতে C++ এ একটি অমিল সহ একটি স্ট্রিং রয়েছে কিনা তা খুঁজুন

  4. C++ ব্যবহার করে ম্যাট্রিক্সে সর্বোচ্চ যোগফল সহ কলাম খুঁজুন।