Random numbers: Difference between revisions

Content added Content deleted
(Added Wren)
Line 2,499: Line 2,499:
ENDFUNC
ENDFUNC
</lang>
</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}}==
=={{header|Yorick}}==