using System; using System.Linq; public class strata{ public static double[] statistics(double[] xs){ double n=xs.Length; double average=xs.Average(); double variance=xs.Select(val=>(val-average)*(val-average)).Average(); return new double[] {average,variance,n}; } /* public static double[] strata( Funcf,double[]a,double[]b, double acc,double eps,Random rnd,double[] oldstat) { int dim=a.Length; int N=8*dim; Func randomx=()=>{ vector x=new vector(dim); for(int i=0;i=(a[k]+b[k])/2)]) var v=Math.abs(al-ar) // take the one with largest variation if(v>vmax){ // remember the values vmax=v;kmax=k; var oldstatl=[al,vl,nl], oldstatr=[ar,vr,nr] } } // now dispatch two recursive calls var a2=a.slice(); a2[kmax]=(a[kmax]+b[kmax])/2 var b2=b.slice(); b2[kmax]=(a[kmax]+b[kmax])/2 var [i1,e1]=strata(f,a,b2,acc/1.414,eps,N,oldstatl,V/2) var [i2,e2]=strata(f,a2,b,acc/1.414,eps,N,oldstatr,V/2) return [i1+i2,Math.sqrt(e1*e1+e2*e2)] // return results } } */ }//class