Unbias a random generator: Difference between revisions
Content added Content deleted
(→{{header|Elixir}}: change :random -> :rand module) |
(Added PowerShell) |
||
Line 1,259: | Line 1,259: | ||
5 16 41 |
5 16 41 |
||
6 11 53 |
6 11 53 |
||
</pre> |
|||
=={{header|PowerShell}}== |
|||
{{works with|PowerShell|2}} |
|||
<lang PowerShell> |
|||
function randN ( [int]$N ) |
|||
{ |
|||
[int]( ( Get-Random -Maximum $N ) -eq 0 ) |
|||
} |
|||
function unbiased ( [int]$N ) |
|||
{ |
|||
do { |
|||
$X = randN $N |
|||
$Y = randN $N |
|||
} |
|||
While ( $X -eq $Y ) |
|||
return $X |
|||
} |
|||
</lang> |
|||
<lang PowerShell> |
|||
$Tests = 1000 |
|||
ForEach ( $N in 3..6 ) |
|||
{ |
|||
$Biased = 0 |
|||
$Unbiased = 0 |
|||
ForEach ( $Test in 1..$Tests ) |
|||
{ |
|||
$Biased += randN $N |
|||
$Unbiased += unbiased $N |
|||
} |
|||
[pscustomobject]@{ N = $N |
|||
"Biased Ones out of $Test" = $Biased |
|||
"Unbiased Ones out of $Test" = $Unbiased } |
|||
} |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
N Biased Ones out of 1000 Unbiased Ones out of 1000 |
|||
- ----------------------- ------------------------- |
|||
3 322 503 |
|||
4 273 518 |
|||
5 217 515 |
|||
6 173 486 |
|||
</pre> |
</pre> |
||