September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
14
Task/Random-numbers/Kotlin/random-numbers.kotlin
Normal file
14
Task/Random-numbers/Kotlin/random-numbers.kotlin
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
// version 1.0.6
|
||||
|
||||
import java.util.Random
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val r = Random()
|
||||
val da = DoubleArray(1000)
|
||||
for (i in 0 until 1000) da[i] = 1.0 + 0.5 * r.nextGaussian()
|
||||
// now check actual mean and SD
|
||||
val mean = da.average()
|
||||
val sd = Math.sqrt(da.map { (it - mean) * (it - mean) }.average())
|
||||
println("Mean is $mean")
|
||||
println("S.D. is $sd")
|
||||
}
|
||||
4
Task/Random-numbers/Lua/random-numbers.lua
Normal file
4
Task/Random-numbers/Lua/random-numbers.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
local list = {}
|
||||
for i = 1, 1000 do
|
||||
list[i] = 1 + math.sqrt(-2 * math.log(math.random())) * math.cos(2 * math.pi * math.random()) / 2
|
||||
end
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
import math, strutils
|
||||
|
||||
const precisn = 5
|
||||
var rs: TRunningStat
|
||||
|
||||
proc normGauss: float {.inline.} = 1 + 0.76 * cos(2*PI*random(1.0)) * sqrt(-2*log10(random(1.0)))
|
||||
|
||||
randomize()
|
||||
|
||||
for j in 0..5:
|
||||
for i in 0..1000:
|
||||
rs.push(normGauss())
|
||||
echo("mean: ", $formatFloat(rs.mean,ffDecimal,precisn),
|
||||
" stdDev: ", $formatFloat(rs.standardDeviation(),ffDecimal,precisn))
|
||||
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
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
var arr = 1000.of { 1 + (0.5 * (-2 * 1.rand.log -> sqrt) * (Number.tau * 1.rand -> cos)) }
|
||||
var arr = 1000.of { 1 + (0.5 * sqrt(-2 * 1.rand.log) * cos(Num.tau * 1.rand)) }
|
||||
arr.each { .say }
|
||||
|
|
|
|||
3
Task/Random-numbers/Stata/random-numbers.stata
Normal file
3
Task/Random-numbers/Stata/random-numbers.stata
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
clear all
|
||||
set obs 1000
|
||||
gen x=rnormal(1,0.5)
|
||||
5
Task/Random-numbers/Zkl/random-numbers-1.zkl
Normal file
5
Task/Random-numbers/Zkl/random-numbers-1.zkl
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
fcn mkRand(mean,sd){ //normally distributed random w/mean & standard deviation
|
||||
pi:=(0.0).pi; // using the Box–Muller transform
|
||||
rz1:=fcn{1.0-(0.0).random(1)} // from [0,1) to (0,1]
|
||||
return('wrap(){((-2.0*rz1().log()).sqrt() * (2.0*pi*rz1()).cos())*sd + mean })
|
||||
}
|
||||
5
Task/Random-numbers/Zkl/random-numbers-2.zkl
Normal file
5
Task/Random-numbers/Zkl/random-numbers-2.zkl
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
var g=mkRand(1,0.5);
|
||||
ns:=(0).pump(1000,List,g); // 1000 rands with mean==1 & sd==1/2
|
||||
mean:=(ns.sum(0.0)/1000); //-->1.00379
|
||||
// calc sd of list of numbers:
|
||||
(ns.reduce('wrap(p,n){p+(n-mean).pow(2)},0.0)/1000).sqrt() //-->0.494844
|
||||
Loading…
Add table
Add a link
Reference in a new issue