package sketchbook.generators
{
/**
* 正規分布の乱数を生成するGenerator。
*
* @example
offset + (-1 ~ 1 ) * amplitude + offset
*/
public class NormDistGenerator extends Generator
{
private var amplitude:Number
private var offset:Number
public function NormDistGenerator(amplitude:Number, offset:Number):void
{
this.amplitude = amplitude
this.offset = offset
updateValue()
}
override public function clone():IGenerator
{
return new NormDistGenerator(amplitude, offset)
}
override protected function updateValue():void
{
_value = getNormDist()*amplitude + offset
}
private function getNormDist():Number
{
return (Math.random()+Math.random()+Math.random()+Math.random()+Math.random()+Math.random())/3 - 1
}
}
}