Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
54
Task/Random-numbers/M2000-Interpreter/random-numbers.m2000
Normal file
54
Task/Random-numbers/M2000-Interpreter/random-numbers.m2000
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
Module CheckIt {
|
||||
Function StdDev (A()) {
|
||||
\\ A() has a copy of values
|
||||
N=Len(A())
|
||||
if N<1 then Error "Empty Array"
|
||||
M=Each(A())
|
||||
k=0
|
||||
\\ make sum, dev same type as A(k)
|
||||
sum=A(k)-A(k)
|
||||
dev=sum
|
||||
\\ find mean
|
||||
While M {
|
||||
sum+=Array(M)
|
||||
}
|
||||
Mean=sum/N
|
||||
\\ make a pointet to A()
|
||||
P=A()
|
||||
\\ subtruct from each item
|
||||
P-=Mean
|
||||
|
||||
M=Each(P)
|
||||
While M {
|
||||
dev+=Array(M)*Array(M)
|
||||
}
|
||||
\\ as pointer to arrray
|
||||
=(if(dev>0->Sqrt(dev/N), 0), Mean)
|
||||
}
|
||||
Function randomNormal {
|
||||
\\ by default all numbers are double
|
||||
\\ cos() get degrees
|
||||
=1+Cos(360 * rnd) * Sqrt(-2 * Ln(rnd)) /2
|
||||
}
|
||||
\\ fill array calling randomNormal() for each item
|
||||
Dim A(1000)<<randomNormal()
|
||||
\\ we can pass a pointer to array and place it to stack of values
|
||||
DisplayMeanAndStdDeviation(A()) ' mean ~ 1 std deviation ~0.5
|
||||
\\ check M2000 rnd only
|
||||
Dim B(1000)<<rnd
|
||||
DisplayMeanAndStdDeviation(B()) ' mean ~ 0.5 std deviation ~0.28
|
||||
|
||||
|
||||
DisplayMeanAndStdDeviation((0,0,14,14)) ' mean = 7 std deviation = 7
|
||||
DisplayMeanAndStdDeviation((0,6,8,14)) ' mean = 7 std deviation = 5
|
||||
DisplayMeanAndStdDeviation((6,6,8,8)) ' mean = 7 std deviation = 1
|
||||
|
||||
Sub DisplayMeanAndStdDeviation(A)
|
||||
\\ push to stack all items of an array (need an array pointer)
|
||||
Push ! StdDev(A)
|
||||
\\ read from strack two numbers
|
||||
Print "Mean is "; Number
|
||||
Print "Standard Deviation is "; Number
|
||||
End Sub
|
||||
}
|
||||
Checkit
|
||||
Loading…
Add table
Add a link
Reference in a new issue