A闪的 BLOG 技术与人文
《代码本色》是本好书,很有意思,最近一直慢慢研读,速度很慢,一边看一边练习。其中的算法和一些小实例在做Demo。最近简单用TypeScript实现了标准差和向量类,这些都在Egret中没有提供的基础功能。后续整理一下相关算法,放到github大家自取。目前还没整理,先把标准差的封装放在下面。
module mebiuslib
{
export class Sigma
{
//平均值
static Mean(val:number[]):number
{
var mean:number = 0;
var n:number = val.length;
var t:number = 0;
for(var i:number=0; i<n; i++)
{
t += val[i];
}
mean = t/n;
return mean;
}
//标准差
static Sigma(val:number[]):number
{
var mean:number = Sigma.Mean(val);
var n:number = val.length;
var t:number = 0;
for(var i:number=0; i<n; i++)
{
var q:number = val[i]-mean;
q = q*q;
t += q;
}
var sigma:number = Math.sqrt(t/n);
return sigma;
}
}
}
算法很简单,如图
使用的时候像下面这样就OK了!
class Main extends egret.DisplayObjectContainer {
public constructor() {
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
}
private onAddToStage(event:egret.Event) {
var num:number[] = [85,82,88,86,85,93,98,40,73,83];
console.log(mebiuslib.MebiusMath.Mean(num));
console.log(mebiuslib.MebiusMath.Sigma(num));
}
}