Find the ratio of number of elements in two Arrays from their individual and combined average
Given the average of elements in two arrays as ‘a’ and ‘b’ respectively, and their combined average as ‘c’, the task is to find the ratio of the number of elements in two array.
Examples:
Input: a = 2, b = 8, c = 5 Output: 1:1 Input: a = 4, b = 10, c = 6 Output: 2:1
Approach:
- Let the number of elements in two arrays are respectively x and y.
- So sum of all elements in the combined array is .
- Total number of elements in the combined array is and let .
- So,
So, - Here f is our required answer.
Below is the implementation of the above Approach:
C++
// C++ program to Find the Ratio // of number of Elements in two Arrays // from their individual and combined Average #include <bits/stdc++.h> using namespace std; // C++ function to find the ratio // of number of array elements void FindRatio( int a, int b, int c) { int up = abs (b - c); int down = abs (c - a); // calculating GCD of them int g = __gcd(up, down); // make neumarator and // denominator coprime up /= g; down /= g; cout << up << ":" << down << "\n" ; } // Driver Code int main() { int a = 4, b = 10, c = 6; FindRatio(a, b, c); return 0; } |
Java
// Java program to Find the Ratio // of number of Elements in two Arrays // from their individual and combined Average class GFG { static int gcd( int a, int b) { if (b == 0 ) return a; return gcd(b, a % b); } // function to find the ratio // of number of array elements static void FindRatio( int a, int b, int c) { int up = Math.abs(b - c); int down = Math.abs(c - a); // calculating GCD of them int g = gcd(up, down); // make neumarator and // denominator coprime up /= g; down /= g; System.out.println(up + ":" + down); } // Driver Code public static void main (String[] args) { int a = 4 , b = 10 , c = 6 ; FindRatio(a, b, c); } } // This code is contributed by AnkitRai01 |
Python3
# Python3 program to Find the Ratio # of number of Elements in two Arrays # from their individual and combined Average from math import gcd # function to find the ratio # of number of array elements def FindRatio(a, b, c): up = abs (b - c) down = abs (c - a) # calculating GCD of them g = gcd(up, down) # make neumarator and # denominator coprime up / / = g down / / = g print (up, ":" , down) # Driver Code a = 4 b = 10 c = 6 FindRatio(a, b, c) # This code is contributed by Mohit Kumar |
C#
// C# program to Find the Ratio // of number of Elements in two Arrays // from their individual and combined Average using System; class GFG { static int gcd( int a, int b) { if (b == 0) return a; return gcd(b, a % b); } // function to find the ratio // of number of array elements static void FindRatio( int a, int b, int c) { int up = Math.Abs(b - c); int down = Math.Abs(c - a); // calculating GCD of them int g = gcd(up, down); // make neumarator and // denominator coprime up /= g; down /= g; Console.WriteLine(up + ":" + down); } // Driver Code public static void Main (String []args) { int a = 4, b = 10, c = 6; FindRatio(a, b, c); } } // This code is contributed by Arnab Kundu |
Javascript
<script> // Javascript program to Find the Ratio // of number of Elements in two Arrays // from their individual and combined Average // Javascript function to find the ratio // of number of array elements function FindRatio(a, b, c) { let up = Math.abs(b - c); let down = Math.abs(c - a); // calculating GCD of them let g = gcd(up, down); // make neumarator and // denominator coprime up = parseInt(up / g); down = parseInt(down / g); document.write(up + ":" + down + "<br>" ); } function gcd(a, b) { if (b == 0) return a; return gcd(b, a % b); } // Driver Code let a = 4, b = 10, c = 6; FindRatio(a, b, c); </script> |
Output:
2:1
Time Complexity: O(log( min(abs(b-c),abs(c-a)) ) )
Auxiliary Space: O(1)