Objective In the previous challenge, we calculated a  mean . In this challenge, we practice calculating a  weighted mean . Check out the  ...

Day 0: Weighted Mean Solution

 Objective

In the previous challenge, we calculated a mean. In this challenge, we practice calculating a weighted mean. Check out the Tutorial tab for learning materials and an instructional video!

Task
Given an array, , of  integers and an array, , representing the respective weights of 's elements, calculate and print the weighted mean of 's elements. Your answer should be rounded to a scale of  decimal place (i.e.,  format).

Input Format

The first line contains an integer, , denoting the number of elements in arrays  and .
The second line contains  space-separated integers describing the respective elements of array .
The third line contains  space-separated integers describing the respective elements of array .

Constraints

  • , where  is the  element of array .
  • , where  is the  element of array .

Output Format

Print the weighted mean on a new line. Your answer should be rounded to a scale of  decimal place (i.e.,  format).

Sample Input

5
10 40 30 50 20
1 2 3 4 5

Sample Output

32.0

Explanation

We use the following formula to calculate the weighted mean:

And then print our result to a scale of  decimal place () on a new line.

Solution

 import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner sc = new Scanner(System.in);
        List<Double> x = new ArrayList<>();
        List<Double> w = new ArrayList<>();
        double sum=0.0,mul=0.0,res = 0.0;
        int n=sc.nextInt();
        
        for(int i=0;i<n;i++) 
            x.add(sc.nextDouble());
        for(int i=0;i<n;i++) 
            w.add(sc.nextDouble());
        
        for(Double d : w)
            sum += d;
        
        for(int i=0;i<n;i++) 
            mul +=(x.get(i)*w.get(i));
            
        res = mul/sum;
        System.out.printf("%.1f",res);
    }
}

0 comments:

Do not spam here.