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