Find the ratio of number of elements in two Arrays from their individual and combined average - GeeksforGeeks

13 Mar, 2022
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++
Java
Python3
C#
Javascript
// 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 elementsvoid 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 Codeint main(){     int a = 4, b = 10, c = 6;     FindRatio(a, b, c);     return 0;}
// Java program to Find the Ratio// of number of Elements in two Arrays// from their individual and combined Averageclass 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 program to Find the Ratio# of number of Elements in two Arrays# from their individual and combined Averagefrom math import gcd # function to find the ratio# of number of array elementsdef 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 Codea = 4b = 10c = 6 FindRatio(a, b, c) # This code is contributed by Mohit Kumar
// C# program to Find the Ratio// of number of Elements in two Arrays// from their individual and combined Averageusing 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
<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 elementsfunction 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>
2:1
 
Time Complexity: O(log( min(abs(b-c),abs(c-a)) ) )
Auxiliary Space: O(1)
mohit kumar 29
ankthon
andrew1234
subhammahato348
subham348
GCD-LCM
Arrays
Mathematical
Arrays
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Multidimensional Arrays in Java
Introduction to Arrays
Python | Using 2D arrays/lists the right way
Linked List vs Array
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7