Kirjautuminen

Haku

Tehtävät

Koodit: VB.NET: Satunnaisluvut

Kirjoittaja: tnb

Kirjoitettu: 13.09.2004 – 13.09.2004

Tagit: koodi näytille, vinkki

Vb.net pitää sisällään kolme tapaa tehdä satunnaislukuja. Näistä yhtä pidetään jopa vahvana menetelmänä, jota ei voi ennustaa, muut ovat vain näennäisiä tilastollisia satunnaislukuja.

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 ' 32 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

'vahva satunnaisluku
Dim Tavut(3) As Byte ' neljä tavua
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)) + 256 * 256 * CLng(Tavut(2)) + 256 * 256 * 256 * CLng(Tavut(3))
d = pitkä / i.MaxValue / 2 ' jako kakkosella jotta 32-bit tulee täyteen
Console.WriteLine(d)

Kommentit

tejeez [14.09.2004 19:00:18]

#

Mitenkäs tuo vahva menetelmä tekee sitten ne satunnaisluvut?

sooda [18.09.2004 09:25:30]

#

Voisit tehdä oppaan noista kaikista niin ei tarttis heittää n+1 vinkkiä, kaikkien olisi helpompi lukea :)

Juice [18.09.2004 20:54:07]

#

Ihan kiva. Eihän mulla jää enää oppaaseen mitään kirjoitettavaa :P

dungeon86 [21.09.2004 14:29:57]

#

miten c:llä pystyy kehittämään satunnaislukuja?

Juice [15.10.2004 19:51:45]

#

dungeon86:
C-satunnaislukugeneraattori:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
    srand( (unsigned)time( NULL ) );
    int i = 0;
    for(i=0; i<10; i++){
        printf("%d\n",rand());
    }
    getchar();
    return(0);
}

srand siementää satunnaislukugeneraattorin.

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta