gpt4 book ai didi

java - 计算函数的总和

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:44 24 4
gpt4 key购买 nike

我有一个点数组列表,例如A[] = {2,5,2,25,84}我将 A' 计算为 Σ((Ai)/n ),其中 n 是数据集的数量我必须计算Σ(Ai-A´)²如何使用 java Streams 来做到这一点?

就像上面的例子一样,A¯ 将为 (2+5+2+25+84)/5,结果为 23.6。那么根据下一个公式,它将是 (2-23.6)²+(5-23.6)²+(2-23.6)²+(25-23.6)²+(84-23.6)²

喜欢计算A´我们可以写

Integer Asum = A
.stream()
.reduce((prev, next) -> prev + next)
.get();

我们得到了所有元素的总和,然后我们可以写

 A¯ = Asum/n

那么如何计算 Σ(Ai-A´)²

最佳答案

您正在寻找的是使用 map 操作以及 sum 终端操作,例如以下代码块:

final int[] a = {2, 5, 2, 25, 84};
double averageOfA = (double) Arrays.stream(a).sum() / a.length; // A¯ in question
// System.out.println(averageOfA); // prints 23.6
double sumOfA = Arrays.stream(a)
.mapToDouble(num -> Math.pow(num - averageOfA, 2)) // mapping here
.sum(); // sum of all such values
// System.out.println(sumOfA); // prints 4929.2

关于java - 计算函数的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58630259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com