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)
Mitenkäs tuo vahva menetelmä tekee sitten ne satunnaisluvut?
Voisit tehdä oppaan noista kaikista niin ei tarttis heittää n+1 vinkkiä, kaikkien olisi helpompi lukea :)
Ihan kiva. Eihän mulla jää enää oppaaseen mitään kirjoitettavaa :P
miten c:llä pystyy kehittämään satunnaislukuja?
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.