Article View: de.comp.lang.c++
Article #2010Re: Zufallsfunktion unter C++?
From: Oliver Michels
Date: Thu, 04 Apr 1996 04:48
Date: Thu, 04 Apr 1996 04:48
70 lines
2334 bytes
2334 bytes
Arnold Erbsloeh (erbsloeh@ind.uni-stuttgart.de) wrote:
: Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl RND?
Ich hoffe, dass mir niemand boese ist, wenn ich jetzt einige Zeilen Code
poste. Ich habe vor einiger Zeit eine Klasse zur Erzeugung von
Zufallszahlen geschrieben, habe bis jetzt aber noch keinen richtig
guten Pseudzufallszahlenalgorithmus implementiert, obwohl ich das
noch machen wollte. In der momentanen Version benutze ich einfach nur
den Aufrauf rand aus der Standardbibliothek.
Getestet ist der Code auf Linux mit gcc 2.6.3, 2.5.8 und auf
SUN mit CC-4.0.1 und gcc 2.7.0
/* Klassendefinition */
/* Random-Generator */
/* zufall.h */
class Zufallsgenerator {
public :
double GibZahl (const int scale);
int Initialisiere (void);
}; /* class Zufallsgenerator */
/* Klassenimplementierung */
/* Random-Generator */
/* zufall.cc */
#ifndef STDLIB_H
#define STDLIB_H
#include <stdlib.h>
#endif
#ifndef TIME_H
#define TIME_H
#include <time.h>
#endif
#ifndef IOSTREAM_H
#define IOSTREAM_H
#include <iostream.h>
#endif
#include "zufall.h"
int Zufallsgenerator::Initialisiere (void)
{
unsigned int seed;
time_t zeit;
time_t* zzeit = new time_t;
zeit = time (zzeit);
seed = (unsigned int) zeit;
srand (seed);
delete zzeit;
return 0;
}
double Zufallsgenerator::GibZahl (const int scale)
{
int zufallszahl;
int div;
zufallszahl=rand();
if (zufallszahl > 32768)
{
div = (int) zufallszahl / 32768;
zufallszahl = zufallszahl - (div * 32768);
}
return ((double) zufallszahl / (32768+1.0))*scale;
// return ((double) rand() / (RAND_MAX+1.0))*scale;
}
--
pgp encrypted mails prefered, public key available on my homepage
http://www-flw.maschinenbau.uni-dortmund.de/flw/mitarbeiter/olmi/pgp.html
or send e-mail to pgp-key@saturn.ruhr.de for automatic reply
Key fingerprint = 41 44 89 AF F4 3E 4F 84 5F F4 B7 10 8D 27 5C D7
Technical Details
Message-ID:
<DpBMoK.8z@saturn.ruhr.de>Path:
arc1-ca.pugleaf.net!ruhr.de!saturn!oliverReferences:
<4jrj46$5580@info4.rus.uni-stuttgart.de>Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!ruhr.de!saturn!oliver From: oliver@saturn.ruhr.de (Oliver Michels) Subject: Re: Zufallsfunktion unter C++? X-Newsreader: TIN [version 1.2 PL2] Organization: private site Message-ID: <DpBMoK.8z@saturn.ruhr.de> References: <4jrj46$5580@info4.rus.uni-stuttgart.de> Date: Thu, 4 Apr 1996 04:48:19 GMT