Skip to content
Related Articles

Related Articles

Improve Article
Find the ratio of number of elements in two Arrays from their individual and combined average
  • Last Updated : 30 Apr, 2021

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 (a*x + b*y)  .
  • Total number of elements in the combined array is (x + y)  and let f = x / y  .
  • So, (a*x + b*y) / (x + y) = c
    (a*f + b) / (f + 1) = c
    f * (c - a) = b - c
    So, f = (b - c) / (c - a)
  • 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

 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :