Sisältö - Random - Math - PI - e
Matematiikkaa - Random
Satunnaislukuja voidaan
generoida kuten Classic Basic:ssakin. Lisäksi löytyy Random
luokka ja vahvan satunnaisluvun luokka.
Esimerkit ensin perinteisestä tavasta ja sitten Random luokaln
avulla.
Dim i As Integer
Dim pitkä As Long
Dim d As Double
Dim k(10) As Byte
'
'classic VB
Randomize()
d = Rnd()
'
'Random class
Dim sat As New System.Random
i = sat.Next ' 31 bit integer
i = sat.Next(1, 7) ' 1..6
i = sat.Next(7) ' 0..6
d = sat.NextDouble() ' > 0.0 ja <1.0
sat.NextBytes(k) ' k() täyteen satunnaisia tavuja
Vahvan satunnaisluvun menetelmä soveltuu parhaiten tapauksiin,
jossa sekvenssin seuraavaa numeroa ei saisi pystyä arvaamaan,
vaikka olisi paljon havainto-dataa käytettävissä
(salakirjoitus jne.)
Esimerkin funktio palauttaa vahvan satunnaisluvun Single tarkkuudella.
Public Function Satunnais() As Single
'vahva satunnaisluku 0 ... 1
Dim Tavut(3) As Byte ' neljä tavua
Dim Pitkä As Long
Dim Generaattori As New System.Security.Cryptography.RNGCryptoServiceProvider
Generaattori.GetBytes(Tavut) ' Tavut taulukko täyteen satunnaisia tavuja
Pitkä = CLng(Tavut(0)) + 256 * CLng(Tavut(1)) + 65536 * CLng(Tavut(2)) + 16777216 * CLng(Tavut(3))
Satunnais = Pitkä / Integer.MaxValue / 2 ' jako kakkosella jotta rajoituu 31-bit
End Function