/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Generer tilfældige tal
Fra : Dondata


Dato : 12-12-00 04:18

Hvordan genererer et tilfældigt 12 cifret tal, ved at bruge "Randomize"??



 
 
CHRistian (12-12-2000)
Kommentar
Fra : CHRistian


Dato : 12-12-00 07:45

"Dondata" <tim_data@hotmail.com> wrote:

>Hvordan genererer et tilfældigt 12 cifret tal, ved at bruge "Randomize"??

RANDOMIZE [TIMER]
RND * 1000000000000 \ 1 ',måske

--
{PS: Indlæg med OE5-fejlen i subject ('Sv' og ikke 'Re') --> killfilter}
OE5-Sv-info + Usenet-test + FreeAgent-newbie-hjælp = www.whitehat.dk/cbh
Rapid-Q BASIC:Console,GUI,Freeware: http://www.basicguru.com/abc/rapidq/
Mvh., Chr. | NB: epost-adr. virker | http://thecola.homepage.com/ -syret

Niels (12-12-2000)
Kommentar
Fra : Niels


Dato : 12-12-00 18:36

"Dondata" <tim_data@hotmail.com> wrote in message
news:9145ka$1dvk$1@news.cybercity.dk...
> Hvordan genererer et tilfældigt 12 cifret tal, ved at bruge "Randomize"??

Det er ikke Randomize, der i sig selv laver det tilfældige tal.
Men den "føder" tilfældigheds generatoren med system tiden.

Desværre giver brugen af Rnd() kun et komma tal på 7 decimaler,
hvilket jo ikke er helt nok til at skabe et 12 cifret tal.

Jeg har lavet et eksempel hvor et 12 cifret tal bliver stykket sammen af
fire tilfældige tal (Da du ikke nævner hvilken datatype du ønsker tallet i,
er eksemplet lavet med variant typen decimal):

Dim etStortTal as Variant

etStortTal=CDec(Int(Rnd * 1000)) * 1000000000 + CDec(Int(Rnd * 1000)) *
1000000 + CDec(Int(Rnd * 1000)) * 1000 + Int(Rnd * 1000)

Dette er ikke nogen speciel god løsning.

For prøv lige at observer hvad der sker når man køre følgende kode:


Dim n As Long ' n tæller antallet af tilfældige tal
Dim r As Single
Dim i As Integer

Randomize ' Seed

r = Rnd ' Et tilfældigt tal

Debug.Print "Udskriv ti tilfældige tal"
For i = 1 To 10
Debug.Print Rnd
Next i
n = 10 ' Vi har lige taget ti tilfældige tal

While r <> Rnd ' find hvornår det oprindelige tilfældig tal kommer igen.
n = n + 1
Wend
Debug.Print "Tallet kommer igen efter:"; n; " gange"

Debug.Print "Vi ser lige hvad de næste ti tilfældige tal er"
For i = 1 To 10
Debug.Print Rnd
Next i
Debug.Print "---------"

Hvis man køre eksemplet et par gange. Opdager man
der 16777215 tilfældige tal.

Det Randomize gør, er at starte et tilfældigt sted inde i denne række.

Med venlig hilsen

Niels G.





Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste