36 lines
927 B
Text
36 lines
927 B
Text
Function randN (n As Ubyte) As Ubyte
|
|
If Int(Rnd * n) + 1 <> 1 Then Return 0 Else Return 1
|
|
End Function
|
|
|
|
Function unbiased (n As Ubyte) As Ubyte
|
|
Dim As Ubyte a, b
|
|
Do
|
|
a = randN (n)
|
|
b = randN (n)
|
|
Loop Until a <> b
|
|
Return a
|
|
End Function
|
|
|
|
Const count = 100000
|
|
|
|
Dim x As Ubyte
|
|
|
|
Randomize Timer
|
|
|
|
Print "Resultados de n";Chr(163);!"meros aleatorios sesgados e imparciales\n"
|
|
For n As Ubyte = 3 To 6
|
|
Dim As Integer b_count(1)
|
|
Dim As Integer u_count(1)
|
|
For m As Integer = 1 To count
|
|
x = randN (n)
|
|
b_count(x) += 1
|
|
x = unbiased (n)
|
|
u_count(x) += 1
|
|
Next m
|
|
Print "N ="; n
|
|
Print " Biased =>", "#0="; Str(b_count(0)), "#1="; Str(b_count(1)),
|
|
Print Using "ratio = ##.##%"; (b_count(1) / count * 100)
|
|
Print "Unbiased =>", "#0="; Str(u_count(0)), "#1="; Str(u_count(1)),
|
|
Print Using "ratio = ##.##%"; (u_count(1) / count * 100)
|
|
Next n
|
|
Sleep
|