[.NET] 如何在.NET寫出查常態分配機率的Z值表
我在奇摩知識上看到的 http://0rz.tw/832xF
一位大大寫的我把他轉述出來 但是和EXCEL的內建函數NORMSDIST機率正確值
還是有一段差距 我的問題是有沒有大大能夠幫我改改程式碼使他的值能夠更精準
的逼近正確值 因為我一定要使用內建的程式碼來跑出機率值來(不可以使用EXCEL)
謝謝!!
Const myStart As Double = -3.5
Const myLength As Double = 0.0001
Dim x As Double, myEnd As Double, myProb As Double
Dim myStep As Double, i As Double
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
countCDF()
End Sub
Sub countCDF()
Do
myProb = 0
myEnd = InputBox("CDF of Standard Normal Dist. x", "輸入 X 的值")
If myEnd = 0 Then
MsgBox("Standrad Normal CDF = 0.5")
Exit Sub
ElseIf myEnd >= Math.Abs(myStart) Then
MsgBox("Standrad Normal CDF = 1")
Exit Sub
ElseIf myEnd <= myStart Then
MsgBox("Standrad Normal CDF = 0")
Exit Sub
Else
myStep = (myEnd - myStart) / myLength
x = myStart
For i = 1 To myStep
myProb = myProb + (myLength * (1 / Math.Sqrt(2 *
3.14159265358979)) * Math.Exp(-(x ^ 2 / 2)))
x = x + myLength
Next i
End If
MsgBox("Standrad Normal CDF = " & myProb)
Loop
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.223.0.50