在C++中從n個方程組(缺失一個方程)中求解n個變數
在這個問題中,我們給定一個數組sum[],它包含(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陣列的值為:
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陣列加起來,我們得到:
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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP