Hackrank 统计十日通(第一天) 加权平均

译自 Day 0: Weighted Mean

加权平均 weighted mean
给一组数值的集合,和一组对应的权重值的集合,则加权平均的计算如下:

加权平均计算公式

其中xi是元素的值而wi是元素对应的权重.

元素值乘以对应权重的乘积之和除以权重之和.
例如,集合x={1,3,5}和对应的权重w={2,4,6}, 那么加权平均应该是:

如果我们把这个舍入到标量1,答案就是3.7


问题:

给一个有N个整数的数组X, 和一个数组W表示对应X中元素的权重, 计算并打印出x元素的加权平均. 你的答案应该精确到小数点后一位(例如,12.3)

输入: 第一行是一个整数N,表示数组X和W的长度.
第二行是以空格分隔的N个数字,即X数组的元素.
地三行是以空格分隔的N个数字,即W数组的元素.

约束:

  • 5<=N<=50
  • 0<xi<=100, xi是数组X中第i个元素
  • 0<wi<=100, wi是数组X中第i个元素

输出:

打印出加权平均,精确到小数点后一位

例如

5
10 40 30 50 20
1 2 3 4 5

结果

32.0

怎么算:


scala

object Solution {
    def main(args: Array[String]) {
        import java.util.Scanner
        val scan: Scanner = new Scanner(System.in)
        try {
            val n: Int = scan.nextInt
            scan.nextLine()
            val X: Array[Int] = scan.nextLine().split(" ").map(_.toInt).toArray
            val W: Array[Int] = scan.nextLine().split(" ").map(_.toInt).toArray
            println("%.1f".format(X.zipAll(W, 0, 0).map((x_w)=> x_w._1 * x_w._2).sum / W.sum.toFloat))
        } finally {
            scan.close
        }
    }
}

python

def weighted_mean():
    n = int(input())
    X = [int(s) for s in input().split(" ")]
    W = [int(s) for s in input().split(" ")]
    print("{0:.1f}".format(sum([x * w for x, w in zip(X, W)]) / sum(W)))


if __name__ == '__main__':
    weighted_mean()

java

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

public class Solution {

    public static void main(String[] args) {
       try (Scanner scan = new Scanner(System.in)) {
            int n = scan.nextInt();
            scan.nextLine();
            int[] X = Stream.of(scan.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
            int[] W = Stream.of(scan.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
            int s1 = IntStream.range(0, n).map(i -> X[i] * W[i]).sum();
            System.out.printf("%.1f\n", s1 / (float)IntStream.of(W).sum());
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容