Find n-variables from n sum equations with one missing
Last Updated :
17 Aug, 2022
You are given an array a[] of n values as a[1], a[2]…a[n] which are part of n-equations in n-variables where equations are as:
Eqn1 => X2 + X3 +…..+Xn = a1
Eqn2 => X1 + X3 +…..+Xn = a2
Eqni => X1 + X2 +…+Xi-1 + Xi+1..+Xn = ai
Eqnn => X1 + X2 +…..+Xn-1 = an
As you have n-equations in n-variables find the value of all variables(X1, X2…Xn).
Examples :
Input : a[] = {4, 4, 4, 4, 4}
Output : X1 = 1
X2 = 1
X3 = 1
X4 = 1
X5 = 1
Input : a[] = {2, 5, 6, 4, 8}
Output : X1 = 4.25
X2 = 1.25
X3 = 0.25
X4 = 2.25
X5 = -1.75
Approach:
Let, X1+X2+X3+….Xn= SUM
Using value SUM we have our equations as
SUM - X1 = a1 -----(1)
SUM - X2 = a2 -----(2)
SUM - Xi = ai -----(i)
SUM - Xn = an -------(n)
---------------------------------------------------------------
Now, if we add all these equation we will have an equation as :
n*SUM -(X1+X2+...Xn) = a1 + a2 + ...an
n*SUM - SUM = a1 + a2 + ...an
SUM = (a1+a2+...an)/(n-1)
Calculate SUM from above equation.
putting value of SUM in (i), (ii).... we have
X1 = SUM - a1
X2 = SUM - a2
Solution :
X1 = SUM - a1
X2 = SUM - a2
Xi = SUM - ai
Xn = SUM - an
Implementation:
C++
#include <bits/stdc++.h>
using namespace std;
void findVar( int a[], int n)
{
float SUM = 0;
for ( int i = 0; i < n; i++)
SUM += a[i];
SUM /= (n - 1);
for ( int i = 0; i < n; i++)
cout << "X" << (i + 1)
<< " = " << SUM - a[i] << endl;
}
int main()
{
int a[] = { 2, 5, 6, 4, 8 };
int n = sizeof (a) / sizeof (a[0]);
findVar(a, n);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static void findVar( int []a,
int n)
{
float SUM = 0 ;
for ( int i = 0 ; i < n; i++)
SUM += a[i];
SUM /= (n - 1 );
for ( int i = 0 ; i < n; i++)
System.out.print( "X" + (i + 1 ) +
" = " + (SUM -
a[i]) + "\n" );
}
public static void main(String args[])
{
int []a = new int []{ 2 , 5 , 6 , 4 , 8 };
int n = a.length;
findVar(a, n);
}
}
|
Python3
def findVar(a, n):
SUM = 0 ;
for i in range (n):
SUM + = a[i];
SUM = SUM / (n - 1 );
for i in range (n):
print ( "X" , (i + 1 ),
" = " , SUM - a[i]);
a = [ 2 , 5 , 6 , 4 , 8 ];
n = len (a);
findVar(a, n);
|
C#
using System;
using System.Linq;
using System.Collections.Generic;
class GFG
{
static void findVar( int []a,
int n)
{
float SUM = 0;
for ( int i = 0; i < n; i++)
SUM += a[i];
SUM /= (n - 1);
for ( int i = 0; i < n; i++)
Console.Write( "X" + (i + 1) +
" = " + (SUM - a[i]) + "\n" );
}
static void Main()
{
int []a = { 2, 5, 6, 4, 8 };
int n = a.Length;
findVar(a, n);
}
}
|
PHP
<?php
function findVar( $a , $n )
{
$SUM = 0;
for ( $i = 0; $i < $n ; $i ++)
$SUM += $a [ $i ];
$SUM /= ( $n - 1);
for ( $i = 0; $i < $n ; $i ++)
echo "\nX" , ( $i + 1)
, " = " , $SUM - $a [ $i ];
}
$a = array (2, 5, 6, 4, 8);
$n = count ( $a );
findVar( $a , $n );
?>
|
Javascript
<script>
function findVar(a,n)
{
let SUM = 0;
for (let i = 0; i < n; i++)
SUM += a[i];
SUM /= (n - 1);
for (let i = 0; i < n; i++)
document.write( "X" + (i + 1) + " = " + (SUM - a[i]) + "<br>" );
}
let a = [2, 5, 6, 4, 8 ];
let n = a.length;
findVar(a, n);
</script>
|
Output
X1 = 4.25
X2 = 1.25
X3 = 0.25
X4 = 2.25
X5 = -1.75
Complexity Analysis:
- Time Complexity : O(n)
- Auxiliary Space : O(1)
Share your thoughts in the comments
Please Login to comment...