java计算标准差思路
//方差s^2=[(x1-x)^2 +...(xn-x)^2]/n 或者s^2=[(x1-x)^2 +...(xn-x)^2]/(n-1) public static double variance(double[] x) { int m=x.length; double sum=0; for(int i=0;i<m;i++){//求和 sum+=x[i]; } double dave=sum/m;//求平均值 double dvar=0; for(int i=0;i<m;i++){//求方差 dvar+=(x[i]-dave)*(x[i]-dave); } return dvar/m; } //标准差σ=sqrt(s^2) public static double standarddiviation(double[] x) { int m=x.length; double sum=0; for(int i=0;i<m;i++){//求和 sum+=x[i]; } double dave=sum/m;//求平均值 double dvar=0; for(int i=0;i<m;i++){//求方差 dvar+=(x[i]-dave)*(x[i]-dave); } //reture math.sqrt(dvar/(m-1)); return math.sqrt(dvar/m); }
//bigdecimal 的sqrt方法 private static bigdecimal sqrt(bigdecimal num) { if (num.compareto(bigdecimal.zero) < 0) { return bigdecimal.zero; } bigdecimal x = num.divide(new bigdecimal("2"), mathcontext.decimal128); while (x.subtract(x = sqrtiteration(x, num)).abs().compareto(new bigdecimal("0.0000000000000000000001")) > 0) ; return x; } private static bigdecimal sqrtiteration(bigdecimal x, bigdecimal n) { return x.add(n.divide(x, mathcontext.decimal128)).divide(new bigdecimal("2"), mathcontext.decimal128); }
有需要的朋友们可以测试下以上代码,感谢大家的学习和对移动技术网的支持。
如对本文有疑问, 点击进行留言回复!!
SpringBoot引用阿里easyexcel,Excel导出返回浏览器下载
HashMap、Hashtable、ConcurrentHashMap三者间的异同
解决RecycleView 中Item包含Edittext时,滑动view复用导致数据错乱的问题
多线程、同步工作原理、死锁案例、Lock接口、线程的生命周期的讲解及实现
网友评论