github.com/Anderson-Lu/gobox@v0.0.0-20191127065433-3e6c4c2da420/number/normsdist.go (about) 1 package number 2 3 import ( 4 "math" 5 ) 6 7 //标准正态分布的累积密度函数 8 func CalcNormsdist(a float64) float64 { 9 var p float64 = 0.2316419 10 var b1 float64 = 0.31938153 11 var b2 float64 = -0.356563782 12 var b3 float64 = 1.781477937 13 var b4 float64 = -1.821255978 14 var b5 float64 = 1.330274429 15 var x = math.Abs(a) 16 17 var t = 1 / (1 + p*x) 18 var val = 1 - (1/(math.Sqrt(2*math.Pi))*math.Exp(-1*math.Pow(a, 2)/2))*(b1*t+b2*math.Pow(t, 2)+b3*math.Pow(t, 3)+b4*math.Pow(t, 4)+b5*math.Pow(t, 5)) 19 if a < 0 { 20 val = 1 - val 21 } 22 return val 23 }