27 lines
516 B
Plaintext
27 lines
516 B
Plaintext
LOCAL i As Integer, m As Double, n As Integer, sd As Double
|
|
py = PI()
|
|
SET TALK OFF
|
|
SET DECIMALS TO 6
|
|
CREATE CURSOR gdev (deviate B(6))
|
|
RAND(-1)
|
|
n = 1000
|
|
m = 1
|
|
sd = 0.5
|
|
CLEAR
|
|
FOR i = 1 TO n
|
|
INSERT INTO gdev VALUES (GaussDev(m, 1/sd))
|
|
ENDFOR
|
|
CALCULATE AVG(deviate), STD(deviate) TO m, sd
|
|
? "Mean", m, "Std Dev", sd
|
|
SET TALK ON
|
|
SET DECIMALS TO
|
|
|
|
FUNCTION GaussDev(mean As Double, sdev As Double) As Double
|
|
LOCAL z As Double
|
|
z = SQRT(-2*LOG(RAND()))*COS(py*RAND())
|
|
IF sdev # 0
|
|
z = mean + z/sdev
|
|
ENDIF
|
|
RETURN z
|
|
ENDFUNC
|