c# - 发现差异
问题描述
我正在尝试添加一个静态方法来计算a的平均值,整数数组,重载a中的方法。还要计算一个双精度数组。添加一个方法来计算整数或双精度数组的总和 添加一个方法来计算整数或双精度数组的方差。添加一种方法来计算整数或双精度数组的标准差。
我已经完成了大部分代码,但是在创建计算方差的方法时遇到了问题。
我在这里尝试了不同的东西,但它总是给我一个错误,我相信 Math.Pow 是什么搞砸了。是否有另一种方法和可能更简单的方法来计算其余代码的方差?
class States
{
private static int Sum(int[] a)
{
int sum = 0;
for (int i = 0; i < a.Length; i++)
{
sum += a[i];
}
return sum;
}
private static double Average(int[] a)
{
int sum = Sum(a);
double Avg = (double)sum / a.Length;
return Avg;
}
//this is where i am having trouble
private static double Var(int[] a)
{
if (a.Length > 1)
{
double Avg = Average(a);
double var = 0.0;
foreach (int A in Average)
{
// Math.Pow to calculate variance?
var += Math.Pow((A - Average)), 2.0)
}
return var;
}
else
{
return 0.0;
}
private static double StdDev(double var)
{
return Math.Sqrt(var);
}
}
}
“Foreach 不能对方法组进行操作”
解决方案
class States
{
private static int Sum(int[] values)
{
int sum = 0;
for (int i = 0; i < values.Length; i++)
{
sum += values[i];
}
return sum;
}
private static double Average(int[] values)
{
int sum = Sum(values);
double avg = (double)sum / values.Length;
return avg;
}
//this is where i am having trouble
public static double Variance(int[] values)
{
if (values.Length > 1)
{
double avg = Average(values);
double variance = 0.0;
foreach (int value in values)
{
// Math.Pow to calculate variance?
variance += Math.Pow(value - avg, 2.0);
}
return variance;
}
else
{
return 0.0;
}
}
private static double StdDev(double var)
{
return Math.Sqrt(var);
}
}
推荐阅读
- php - php modbus over tcp(设备网关)
- angular - Ionic HttpClient GET 在浏览器中有效,但在设备上无效
- node.js - 我们可以在 node-oracledb 中记录具有绑定参数的 SQL 查询吗?
- python - 如何防止 sqlite3(使用 Python 2.7)每隔一个字符插入空字节?
- node.js - 在不同主机上的网络服务器之间共享对象的最佳方式是什么
- reactjs - whileTap 和 whileHover 道具在 iFrame 内的元素上无法按预期工作
- php - 删除一个条目后更改其他条目的sort_id PHP Laravel
- reporting-services - 根据参数值过滤数据集结果
- azure-sql-database - SQL Azure - 列“”的类型与 UNPIVOT 列表中指定的其他列的类型冲突
- r - R:将小数位数与相邻值匹配