RND en RANDOMIZE alternatieven voor het genereren van willekeurige getallen

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 28150 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

Als u een vervanging voor RND en RANDOMIZE, kunt u uw eigen de vergelijking voor het genereren van willekeurige getallen zoals hieronder.

Microsoft Basic biedt de functie RND willekeurige enkele precisie getallen tussen 0.000000 en 1.000000. De RANDOMIZE instructie kan worden gebruikt om een bepaalde reeks reseed (of start eerst) geretourneerd door RND. Microsoft Basic wordt de methode lineaire congruential voor het genereren van willekeurige getal in de functie RND.

Deze informatie is ook opgenomen in het Help-bestand met Standard en Professional Editions van Microsoft Visual Basic voor MS-DOS, versie 1.0.

Meer informatie

Microsoft Basic wordt de lineaire congruential methode voor een willekeurig getal de functie RND genereren. Het volgende is een voorbeeld van de lineaire congruential methode formule, die wordt gebruikt door RND in Microsoft Basic:
   x1 = ( x0 * a + c ) MOD 2^24
				
De variabelen gelijk aan in het bovenstaande voorbeeld het volgende:
x 1 = het aantal nieuwe
x 0 = vorige nummer
een = 214013
c = 2531011
(Opmerking: de operator MOD in bovenstaande formule retourneert het gehele getal restgetal na de deling van een geheel getal.)

De expressie x1/(2^24) geeft als resultaat een getal met drijvende komma tussen 0,0 en 1.0. Zie Code voorbeelden 1 en 2 hieronder voor een illustratie.

Zie voor meer random number generation algoritmen's 353 364 van "Microsoft QuickBASIC programmeur werkset", door John C. Karel uitgegeven door Microsoft Press (1988). Zeven random number subprogramma 's zijn gedocumenteerd en is ook een schijf companion in MS-DOS-indeling verkrijgbaar bij Microsoft Press.

De programma's van Craig boek zijn geschreven voor Microsoft QuickBasic voor MS-DOS versie 4.0 voor de IBM PC. Sommige programma's, zoals de willekeurige aantal programma's, zijn algemeen en kan gemakkelijk worden gewijzigd uit te voeren in Microsoft QuickBasic voor Apple Macintosh. Wanneer u deze uitvoert programma's, kunt u willekeurige nummerreeks regelmatig reseed (zoals elke paar honderd aanroepen) voor grotere uniformiteit.

Voorbeeld 1

Een voorbeeld van de lineaire congruential het genereren van pseudo-willekeurige getallen:
' To try this example in VBDOS.EXE:
' 1. From the File menu, choose New Project.
' 2. Copy the code example to the Code window.
' 3. Press F5 to run the program.
DEFDBL A-Z  ' Requires double-precision intermediate variables.
a = 214013
c = 2531011
z = 2 ^ 24
INPUT "Input any seed value: ", x0
FOR count = 1 TO 25   ' print 25 random numbers between 0.0 and 1.0:
  temp = x0 * a + c
' Calculate (temp MOD z) and assign to x1:
  temp = temp / z
  x1 = (temp - FIX(temp)) * z
' Print the result as value between 0.0000000 and 1.0000000:
  result = x1 / z
  PRINT result
' Reseed the calculation before the next iteration:
  x0 = x1   ' x0 and x1 range from 0 to 16777216 (2^24)
NEXT
				

Voorbeeld 2

Het volgende is hetzelfde als voorbeeld 1, behalve de aselecte getallen ter illustratie van de uniforme verdeling getekend:
' To try this example in VBDOS.EXE:
' 1. From the File menu, choose New Project.
' 2. Copy the code example to the Code window.
' 3. Press F5 to run the program.
DEFDBL A-Z     ' Requires double-precision intermediate variables.
SCREEN 2
a = 214013
c = 2531011
z = 2 ^ 24
INPUT "Input seed value: ", x0
FOR count = 1 TO 5000
  temp = x0 * a + c
  ' Calculate (temp MOD z) and assign to x1:
  temp = temp / z
  x1 = (temp - FIX(temp)) * z
  result = x1 / z  ' Result is between 0.000000 and 1.000000
  GOSUB 100       ' Plot Result
  x0 = x1   ' x0 and x1 range from 0 to 16777216 (2^24)
NEXT
END
' Plot the random points to see their uniform distribution:
100 y = y + 1
    IF y > 200 THEN y = 0   ' Wrap plot at y=200 pixels.
    x = result * 500   ' Assumes screen mode <= 500 pixels wide.
    PSET (x, y)   ' PSET requires a graphics screen mode.
    RETURN
				

Eigenschappen

Artikel ID: 28150 - Laatste beoordeling: zaterdag 9 juni 2012 - Wijziging: 4.0
De informatie in dit artikel is van toepassing op:
  • Microsoft QuickBasic 1.0
  • Microsoft QuickBasic Compiler for Macintosh 1.0
Trefwoorden: 
kbmt KB28150 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende: 28150
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com