"Thomas" <asd@asd.de> wrote in message
news:arehld$1ouh$1@news.cybercity.dk...
> Jeg skal generere nogle simple tilfældige tal. Hvordan gør jeg det nemmest
> uden at det bliver for kompliceret?
>
>
Sådan her Thomas:
=======================================
#include <iostream.h> // Streaming relateret stuff
#include <conio.h> // For brug af getch()
#include <stdlib.h> // For brug af srand() samt rand()
#include <time.h> // For brug af time()
#define ESC 0x1b
// "Seed" tilfældige tal generatoren (sådan da, - men i
// det mindste med forskellig start fra kørsel til kørsel
inline void Randomize() { srand((unsigned)time(NULL)); }
// Generer et tilfældigt decimaltal i intervallet [0,1[
inline double rnd() { return rand() / (double)(RAND_MAX + 1); }
// Generer et tilfældigt heltal i intervallet [0, n-1]
inline int Random(int n) { return (int)(rnd() * n); }
// Test skidtet
int main(int argc, char* argv[])
{
int i;
Randomize();
for (i = 0; i < 5; i++)
cout << Random(10) << ", " << rnd() << endl;
cout << endl;
while
(getch() != ESC);
return 0;
}
=======================================
Udskrift fra en programkørsel:
0, 0.056427
2, 0.31131
8, 0.417786
5, 0.362701
6, 0.828766
Tre små functioner, nemmere kan det da næsten ikke blive
RAND_MAX er defineret i <stdlib.h> som:
#define RAND_MAX 0x7fff
Programmet er udført i Microsoft Visual C++ 6.0
Venlig hilsen
Alias John Doe