Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
42
Task/Random-numbers/OoRexx/random-numbers-1.rexx
Normal file
42
Task/Random-numbers/OoRexx/random-numbers-1.rexx
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/*REXX pgm gens 1,000 normally distributed #s: mean=1, standard dev.=0.5*/
|
||||
pi=RxCalcPi() /* get value of pi */
|
||||
Parse Arg n seed . /* allow specification of N & seed*/
|
||||
If n==''|n==',' Then
|
||||
n=1000 /* N is the size of the array. */
|
||||
If seed\=='' Then
|
||||
Call random,,seed /* use seed for repeatable RANDOM#*/
|
||||
mean=1 /* desired new mean (arith. avg.) */
|
||||
sd=1/2 /* desired new standard deviation.*/
|
||||
Do g=1 For n /* generate N uniform random nums.*/
|
||||
n.g=random(0,1e5)/1e5 /* REXX gens uniform rand integers*/
|
||||
End
|
||||
|
||||
Say ' old mean=' mean()
|
||||
Say 'old standard deviation=' stddev()
|
||||
Say
|
||||
Do j=1 To n-1 By 2
|
||||
m=j+1
|
||||
/*use Box-Muller method */
|
||||
_=sd*RxCalcPower(-2*RxCalcLog(n.j),.5)*RxCalcCos(2*pi*n.m,,'R')+mean
|
||||
n.m=sd*RxCalcpower(-2*RxCalcLog(n.j),.5)*RxCalcSin(2*pi*n.m,,'R')+,
|
||||
mean /* rand # must be 0???1. */
|
||||
n.j=_
|
||||
End /* j */
|
||||
Say ' new mean=' mean()
|
||||
Say 'new standard deviation=' stddev()
|
||||
Exit
|
||||
mean:
|
||||
_=0
|
||||
Do k=1 For n
|
||||
_=_+n.k
|
||||
End
|
||||
Return _/n
|
||||
stddev:
|
||||
_avg=mean()
|
||||
_=0
|
||||
Do k=1 For n
|
||||
_=_+(n.k-_avg)**2
|
||||
End
|
||||
Return RxCalcPower(_/n,.5)
|
||||
|
||||
:: requires rxmath library
|
||||
46
Task/Random-numbers/OoRexx/random-numbers-2.rexx
Normal file
46
Task/Random-numbers/OoRexx/random-numbers-2.rexx
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*REXX pgm gens 1,000 normally distributed #s: mean=1, standard dev.=0.5*/
|
||||
pi=RxCalcPi() /* get value of pi */
|
||||
Parse Arg n seed . /* allow specification of N & seed*/
|
||||
If n==''|n==',' Then
|
||||
n=1000 /* N is the size of the array. */
|
||||
If seed\=='' Then
|
||||
Call random,,seed /* use seed for repeatable RANDOM#*/
|
||||
mean=1 /* desired new mean (arith. avg.) */
|
||||
sd=1/2 /* desired new standard deviation.*/
|
||||
Do g=1 For n /* generate N uniform random nums.*/
|
||||
n.g=random(0,1e5)/1e5 /* REXX gens uniform rand integers*/
|
||||
End
|
||||
|
||||
Say ' old mean=' mean()
|
||||
Say 'old standard deviation=' stddev()
|
||||
Say
|
||||
Do j=1 To n-1 By 2
|
||||
m=j+1
|
||||
/*use Box-Muller method */
|
||||
_=sd*sqrt(-2*ln(n.j))*cos(2*pi*n.m)+mean
|
||||
n.m=sd*sqrt(-2*ln(n.j))*sin(2*pi*n.m)+mean
|
||||
n.j=_
|
||||
End
|
||||
Say ' new mean=' mean()
|
||||
Say 'new standard deviation=' stddev()
|
||||
Exit
|
||||
mean:
|
||||
_=0
|
||||
Do k=1 For n
|
||||
_=_+n.k
|
||||
End
|
||||
Return _/n
|
||||
stddev:
|
||||
_avg=mean()
|
||||
_=0
|
||||
Do k=1 For n
|
||||
_=_+(n.k-_avg)**2
|
||||
End
|
||||
Return sqrt(_/n)
|
||||
|
||||
sqrt: Return RxCalcSqrt(arg(1))
|
||||
ln: Return RxCalcLog(arg(1))
|
||||
cos: Return RxCalcCos(arg(1),,'R')
|
||||
sin: Return RxCalcSin(arg(1),,'R')
|
||||
|
||||
:: requires rxmath library
|
||||
Loading…
Add table
Add a link
Reference in a new issue