Random numbers: Difference between revisions

Added Wren
(Added Wren)
Line 2,499:
ENDFUNC
</lang>
 
=={{header|Wren}}==
<lang ecmascript>import "random" for Random
 
var rand = Random.new()
 
var randNormal = Fn.new { (-2 * rand.float().log).sqrt * (2 * Num.pi * rand.float()).cos }
 
var stdDev = Fn.new { |a, m|
var c = a.count
return ((a.reduce(0) { |acc, x| acc + x*x } - m*m*c) / c).sqrt
}
 
var n = 1000
var numbers = List.filled(n, 0)
var mu = 1
var sigma = 0.5
var sum = 0
for (i in 0...n) {
numbers[i] = mu + sigma*randNormal.call()
sum = sum + numbers[i]
}
var mean = sum / n
System.print("Actual mean : %(mean)")
System.print("Actual std dev: %(stdDev.call(numbers, mean))")</lang>
 
{{out}}
Sample run:
<pre>
Actual mean : 1.0053988699746
Actual std dev: 0.4961645117026
</pre>
 
=={{header|Yorick}}==
9,488

edits