HX45/300w/Epox 8KHA+/XP1800@1620/768mb@2x143mhz Apacer/17"@Asus V6600 GF1/17"@ S3trio64V/SB1024 Live player/Kingston 110TX/20gig@7200rpm Maxtor/40gig@5400rpm Maxtor/27gig@5400 WD/JustCool CPUcooler/2x120mm en 3x80mm casefans/Plextor 40x/DVDR4x
/me weet geen leuke quote voor in zijn signature
Problem Exists Between Chair And Keyboard
majornono schreef op 07 January 2003 @ 13:32:
als je eerst wat code geeft, kunnen we even kijken of je wat vergeten bent. Ik weet dat er randomize functies zijn in andere programmeertalen die je eerst moet initialiseren voordat je ze kunt gebruiken, dus misschien ben je dat vergeten.
Dat zal in VB waarschijnlijk niet veel anders zijn.
Je zult dus eerst de randomizer moeten 'seeden'.
https://fgheysels.github.io/
Aangezien een computer alles berekent, kan hij in theorie ook geen random nummer bedenken.
Vergelijk je code eens met deze:
http://www.devcity.net/pubs/article.asp?alias=randomnumbers
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Verwijderd
Bron : http://bs0d.superterran.com/tutorials/vb/vb1/6.phpRANDOM NUMBERS
Rnd - Generates a random number between 0 and 1.
Randomize - Tells VB to randomly generate numbers for the rnd statement. Using randomize will allow the rnd statement to generate an entirely random set of numbers that do not follow any recognizable pattern.
Generating Numbers between 1 and 10:
Num = Int((10 - 1 + 1)* rnd + 1)
Generating Numbers between 1 and 100:
Num = Int((100 - 10 + 1)* rnd + 1)
Ik wil niet moeilijk doen, hoor, maar van dezelfde auteur:gorgi_19 schreef op 07 januari 2003 @ 13:33:
Vergelijk je code eens met deze:
http://www.devcity.net/pubs/article.asp?alias=randomnumbers
http://www.devcity.net/pubs/article.asp?alias=search_array
I rest my case. Dan maar liever zelf nadenken. En dan te bedenken dat die code een score van 4 uit 5 krijgt! VB programmeurs.
INTcijfer = Round(Rnd() * INTmaxi, 0)
INTteller = INTteller + 1
LSlijst.AddItem (Str(INTcijfer))
If INTmax <= INTcijfer Then INTmax = INTcijfer
If INTcijfer <= INTmin Then INTmin = INTcijfer
INTsom = INTsom + INTcijfer
Loop
Hier berekend hij die dingen in...
en dit is het programma:
http://members.ams.chello.nl/j.groen6/Statje.exe
HX45/300w/Epox 8KHA+/XP1800@1620/768mb@2x143mhz Apacer/17"@Asus V6600 GF1/17"@ S3trio64V/SB1024 Live player/Kingston 110TX/20gig@7200rpm Maxtor/40gig@5400rpm Maxtor/27gig@5400 WD/JustCool CPUcooler/2x120mm en 3x80mm casefans/Plextor 40x/DVDR4x
Weer zo'n geslaagde bron:
Nu zal ik wel gek zijn, maar als je 91 vermenigvuldigd met een getal tussen '0 en 1' (inclusief of exclusief 1?) en er 1 bij op telt, hoe kom je dan OOIT boven de 92 uit?Rnd - Generates a random number between 0 and 1.
[..]
Generating Numbers between 1 and 100:
Num = Int((100 - 10 + 1)* rnd + 1)
Ik denk dat de topic starter het van de officiele documentatie moet hebben, want van de tips, code en tutorials van medegebruikers moet je 't duidelijk niet hebben.
doet het nu dus goed :):)
Dank (nooit geweten dat je die moest initialiseren)
Nieuwe: http://members.ams.chello.nl/j.groen6/Statje2.exe
[ Voor 21% gewijzigd door LG_Greenman op 07-01-2003 13:49 ]
HX45/300w/Epox 8KHA+/XP1800@1620/768mb@2x143mhz Apacer/17"@Asus V6600 GF1/17"@ S3trio64V/SB1024 Live player/Kingston 110TX/20gig@7200rpm Maxtor/40gig@5400rpm Maxtor/27gig@5400 WD/JustCool CPUcooler/2x120mm en 3x80mm casefans/Plextor 40x/DVDR4x
/me weet geen leuke quote voor in zijn signature
Codetags. Quickstart.LG_Greenman schreef op 07 januari 2003 @ 13:44:
Do Until INTaantal = INTteller
INTcijfer = Round(Rnd() * INTmaxi, 0)
INTteller = INTteller + 1
LSlijst.AddItem (Str(INTcijfer))
If INTmax <= INTcijfer Then INTmax = INTcijfer
If INTcijfer <= INTmin Then INTmin = INTcijfer
INTsom = INTsom + INTcijfer
Loop
Welkom in P&W -> Quickstart (update 2/10/2002)
En waar staat die randomize van je dan? Moet 'ie die er zelf bij verzinnen ofzo?
Nu nog één keer voor de duidelijkheid: EERST roep je 'randomize' aan om de getallen (conceptueel) door elkaar te husselen. DAARNA kun je 'rnd' aanroepen om semi-willekeurige getallen te genereren. En dan te bedenken dat ik geen VB ken!
Note to self:
- VB topics mijden
- dokter om valium vragen
KnoppenSpook schreef op 07 January 2003 @ 13:49:
Randomize 'rekent' een random getal uit, rnd vraagt dat getal op, zoiets is het dacht ik
Nee hoor, Randomize gaat gewoon de random-generator gaan initialiseren.
En met Rnd vraag je dan idd een random getal op.
Maar zoals jij het zegt, zou je willen zeggen dat je iedere keer 'Randomize' moet aanroepen voor iedere Rnd, en dat is niet waar.
https://fgheysels.github.io/
Sterker nog, als randomize intern de huidige tijd gebruikt om te seeden (zoals gebruikelijk is in andere talen) dan krijg je daardoor juist vaak hetzelfde getal. Of dat zo werkt, of dat men bij het ontwikkelen van VB rekening heeft gehouden met de doelgroep, weet ik echter niet precies.whoami schreef op 07 January 2003 @ 13:54:
Maar zoals jij het zegt, zou je willen zeggen dat je iedere keer 'Randomize' moet aanroepen voor iedere Rnd, en dat is niet waar.
Soultaker schreef op 07 januari 2003 @ 13:53:
[...]
offtopic:
Note to self:
- VB topics mijden
- dokter om valium vragen
Ik denk dat vooral dat laatste van toepassing is....
Een beetje kalm en relaxed blijven gewoon....
https://fgheysels.github.io/
1
| randomize timer |
8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek
Soultaker schreef op 07 January 2003 @ 13:53:
offtopic:
Note to self:
- VB topics mijden
- dokter om valium vragen
Soultaker, iets rustiger aan ajb. Als je jezelf er _zo_ erg aan stoort ga dan eventjes afkoelen, rondje lopen, whatever, maar houdt het hier een beetje gezellig ajb
KnoppenSpook schreef op 07 januari 2003 @ 13:49:
Randomize 'rekent' een random getal uit, rnd vraagt dat getal op, zoiets is het dacht ik
Nope. De random functionaliteit werkt eigenlijk meer als een soort (virtuele!) oneindige lijst met getallen. Waneer je rnd uitvoert word adhv het huidige getal (de seed van de volgende dus) bepaald wat de volgende in de 'lijst' is. Probleem is dat aan het begin de boel wel geinitialiseerd moet worden. Waneer je altijd met 0 begint zal altijd dezelfde lijst met getallen uit rnd halen. Om toch een verschillend startpunt te krijgen word als initiele seed meestal de huidige tijd in ms gebruikt. Dit is wat randomize doet (je kunt ook zelf een seed opgeven)...
Je moet nu trouwens niet denken dat er een enorme lijst met random getallen, maar meer aan een klein algoritme wat aan de hand van vorige getrokken waarden nieuwe bitjes genereert (mbv Xor)..
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
/me weet geen leuke quote voor in zijn signature
1
2
3
| Dim MyValue Randomize ' Initialize random-number generator. MyValue = Int((6 * Rnd) + 1) ' Generate random value between 1 and 6. |
Hoe duidelijk wil je het hebben...
(en de tekst in de hellup bij het Randomize statement en de Rnd function zijn ook niet verkeerd om eens te bekijken)
Exact expert nodig?
MSalters schreef op 07 januari 2003 @ 14:51:
De "random" lijst is zeker niet oneindig; uit m'n hoofd is de lengte maximaal 2statebits-1, waarna je weer met 't eerste getal begint.
Uiteraard, maar voor vb begrippen is dat redelijk oneindig
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
MSalters schreef op 07 January 2003 @ 14:51:
De "random" lijst is zeker niet oneindig; uit m'n hoofd is de lengte maximaal 2statebits-1, waarna je weer met 't eerste getal begint.
idd, de meeste standaard random implementaties zijn gewoon een modulaire vermenigvuldiging, waarbij het getal waarmee vermenigvuldigd wordt een voortbrenger is van het modulo argument (wat idd 2x is, aangezien dat het makkelijkst is bij modulaire berekeningen op de pc)
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Dilbert cartoon, Hier is ie te vinden.
Overigens staan op Pscode.comp verscheidene implementaties van zelfgemaakte Random number generators met verscheidene algoritmes (onder de VB sectie). Wellicht interessant om te bekijken. Persoonlijk is RND voor mij voldoende
toevalligerwijs had ik m eergisteren ingesteld als sig
[ Voor 53% gewijzigd door .oisyn op 07-01-2003 18:14 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd