🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
12 messages
12 total messages Started by Arnold Erbsloeh Tue, 02 Apr 1996 16:03
Zufallsfunktion unter C++?
#1968
Author: Arnold Erbsloeh
Date: Tue, 02 Apr 1996 16:03
1 lines
462 bytes
Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl RND?
Re: Zufallsfunktion unter C++?
#1970
Author: Kurt Watzka
Date: Tue, 02 Apr 1996 20:49
14 lines
915 bytes
erbsloeh@ind.uni-stuttgart.de (Arnold Erbsloeh) writes:

>Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl RND?

Leider, oder besser gluecklicherweise, nicht. Aber die Standart C Bibliothek
gibt es auch unter C++.

Je nach Entwicklungsstand des Compilers entweder "#include <cstdlib>" oder
"#include <stdlib.h>", und dann heisst sie, wer haette es gedacht, rand().

Kurt
--
| Kurt Watzka                             Phone : +49-89-2180-6254
| watzka@stat.uni-muenchen.de
Re: Zufallsfunktion unter C++?
#1973
Author: Thomas Falk
Date: Wed, 03 Apr 1996 07:30
11 lines
799 bytes
In article <4jrj46$5580@info4.rus.uni-stuttgart.de>, erbsloeh@ind.uni-stuttgart.de (Arnold Erbsloeh) writes:
>Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl RND?
>

In der libg++ gibt es eine Klasse fuer die Generierung von Zufallszahlen
unterschiedlichster Verteilungen. Ansonsten koennen ja auch noch die Standard-
C-funktionen rand und random verwendet werden.

Bye

Thomas 
Re: Zufallsfunktion unter C++?
#1976
Author: Dietmar Kuehl
Date: Wed, 03 Apr 1996 13:46
94 lines
2868 bytes
Hi,

Kurt Watzka (watzka@stat.uni-muenchen.de) wrote:
: erbsloeh@ind.uni-stuttgart.de (Arnold Erbsloeh) writes:

: >Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl RND?

: Leider, oder besser gluecklicherweise, nicht. Aber die Standart C Bibliothek
: gibt es auch unter C++.

: Je nach Entwicklungsstand des Compilers entweder "#include <cstdlib>" oder
: "#include <stdlib.h>", und dann heisst sie, wer haette es gedacht, rand().

Damit man tatsaechlich Zufallszahlen bekommt, sollt man allerdings
vorher 'srand()' mit einem geeigneten, halbwegs zufaelligen Wert (der
Zeit, der Prozess ID, der Position der Maus, oder was man halt gerade
hat) aufrufen. Hier ist ein Beispiel, wie man es machen koennte (zu beachten ist
allerdings, dass der Startwert nicht unbedingt in jedem Program anders ist: etwa wenn
das Program innerhalb der Genauigkeit von 'time()' zweimal aufgerufen wird...):

  //--- rand.h ---

  class RND
  {
  private:
    struct Init
    {
      Init(int def);
    };
    static Init init;

  public:
    int    max_int() const;
    int    rnd_int() const;
    int operator()() const { return rnd_int(); }
    double max_dbl() const { return 1.0; }
    double rnd_dbl() const { return double(rnd_int()) / double(max_int()); }
  };

  extern RND rnd;

  //--- rand.cc ---

  #include <stdlib.h>
  #include <limits.h>
  #include <time.h>

  #ifndef RAND_MAX
  #  define RAND_MAX INT_MAX
  #endif

  RND::Init::Init(int def)
  {
    typedef unsigned int uint;
    uint   seed = 1;
    time_t t = time(0);

    if (t != -1)
      seed = uint(t);
    else
    {
      clock_t c = clock();

      if (c != -1)
	seed = uint(c);
      // else
      //   do something else e.g. use 'gmtime()'.
    }

    srand(seed);
  }

  RND::Init RND::init = 1;
  RND       rnd;

  int RND::max_int() const { return RAND_MAX; }
  int RND::rnd_int() const { return rand(); }

  //--- tst.cc ---

  #include <iostream.h>

  int main()
  {
    cout << rnd() << endl;
    return 0;
  }

Das kann man sicher noch besser machen, aber fuer den Anfang sollte es
reichen...
--
dietmar.kuehl@uni-konstanz.de
http://www.informatik.uni-konstanz.de/~kuehl
I am a realistic optimist - that's why I appear to be slightly pessimistic
Re: Zufallsfunktion unter C++?
#1980
Author: Ralf W. Stephan
Date: Wed, 03 Apr 1996 14:51
16 lines
1012 bytes
Arnold Erbsloeh writes:
> Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl RND?

Nein.  Eine solche ist aber meistens in den mitgelieferten Libraries
enthalten.  Suche in der Dokumentation nach rand(), srand(), random().
Oder Du fragst am besten in einer Newsgroup, die sich mit Deinem 
speziellen Compiler befaßt.



ralf
--
"In some ways the online environment in 1996 feels like Hong Kong in the 
last days of British rule: a very free community wondering what's going to 
happen as the forces of law and order start moving in." --Charles Platt   
PGP: 1024/0xA713ECE9 2047/0xC8E605F5    keys on servers
Re: Zufallsfunktion unter C++?
#2010
Author: Oliver Michels
Date: Thu, 04 Apr 1996 04:48
70 lines
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 
Re: Zufallsfunktion unter C++?
#2004
Author: Ralf W. Stephan
Date: Thu, 04 Apr 1996 13:47
15 lines
1003 bytes
Kurt Watzka writes:
> >Gibt es eine Zufallsfunktion unter C++
> Leider, oder besser gluecklicherweise, nicht.

Nicht ganz.  Wenn die STL als Standardlibrary übernommen wird,
dann könnte es auch das File random.cc dorthin machen.  Das Teil
existiert zumindest in libg++-2.7.1/libstdc++/stl. 


ralf
--
"In some ways the online environment in 1996 feels like Hong Kong in the 
last days of British rule: a very free community wondering what's going to 
happen as the forces of law and order start moving in." --Charles Platt   
PGP: 1024/0xA713ECE9 2047/0xC8E605F5    keys on servers
Re: Zufallsfunktion unter C++?
#2018
Author: Tim Chittka
Date: Fri, 05 Apr 1996 14:59
25 lines
1287 bytes
Hier mein Riplai auf die Mail
von Freitag dem 02.04.96 von erbsloeh@ind.uni-stuttgart.de
im Brett /DE/COMP/LANG/C++
zum Thema "Zufallsfunktion unter C++?":

Halloele ihr UserInnen,
besonders *erbsloeh*

e> Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl
e> RND?

Abba sicha doch,   random   zum Bleistift.

Tschüßi
                  TIMMI@H-HOUSE.domino.de
  _-_-_-_-_-_-     TIMMI@DOUBLE-M.domino.de
    _-_-    _-   _     _          _     _   -_
  _-_-   _-_-  _-_-_ _-_-_      _-_-_ _-_-_  -_-_
_-_-   _-_-  _-_-   -   -_-_  _-_-   -   -_-_  -_-_

                  -=­   02305-42242  ­=-
               -=­ Cosysop of HardHouse ­=-

CITY-NET, TREK-NET, T-NETZ, Z-NETZ, DOMINO, ...
## CrossPoint v3.1 ##
Re: Zufallsfunktion unter C++?
#2026
Author: Kurt Watzka
Date: Sat, 06 Apr 1996 10:33
22 lines
1075 bytes
TIMMI@double-m.domino.de (Tim Chittka) writes:

>Hier mein Riplai auf die Mail
>von Freitag dem 02.04.96 von erbsloeh@ind.uni-stuttgart.de
>im Brett /DE/COMP/LANG/C++
>zum Thema "Zufallsfunktion unter C++?":

>Halloele ihr UserInnen,
>besonders *erbsloeh*

>e> Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl
>e> RND?

>Abba sicha doch,   random   zum Bleistift.

Das letze mal als ich nachgesehen habe, war "random()" noch nicht im
DWP. Auch im ARM steht nichts darueber.   

Kurt
--
| Kurt Watzka                             Phone : +49-89-2180-6254
| watzka@stat.uni-muenchen.de
Re: Zufallsfunktion unter C++?
#2051
Author: Dietmar Kuehl
Date: Tue, 09 Apr 1996 15:15
29 lines
1713 bytes
Hi,

Ralf W. Stephan (ralf@ark.franken.de) wrote:
: Kurt Watzka writes:
: > >Gibt es eine Zufallsfunktion unter C++
: > Leider, oder besser gluecklicherweise, nicht.

Da die Standard C Library Teil der Standard C++ Library ist, gibt es
schon eine Zufallsfunktion unter C++: 'rand()'.

: Nicht ganz.  Wenn die STL als Standardlibrary übernommen wird,

STL ist laengst ein wesentlicher Bestandteil der Standard C++ Library.
Es gibt kaum eine Chance, dass STL nicht Teil der ISO C++ Standards
wird.

: dann könnte es auch das File random.cc dorthin machen.  Das Teil
: existiert zumindest in libg++-2.7.1/libstdc++/stl. 

Dennoch gibt es keinen 'random_generator' in der C++ Library: Die HP
STL Implementation ist NICHT das, was im Standard enthalten sein wird.
Es gibt einige wesentlich Unterschiede. Dass DWP enthaelt z.B. keine
Referenz auf eine Klasse (oder Funktion) 'random_generator'. Es gibt
lediglich ein 'random_shuffle', dass einen Zufallszahlengenerator
benutzt.
--
dietmar.kuehl@uni-konstanz.de
http://www.informatik.uni-konstanz.de/~kuehl/
I am a realistic optimist - that's why I appear to be slightly pessimistic
Re: Zufallsfunktion unter C++?
#2061
Author: Tim Chittka
Date: Tue, 09 Apr 1996 17:46
26 lines
1376 bytes
Hier mein Riplai auf die Mail
von Dienstag dem 03.04.96 von falk@et.tu-dresden.de
im Brett /DE/COMP/LANG/C++
zum Thema "Re: Zufallsfunktion unter C++?":

Halloele ihr UserInnen,
besonders *falk*

f> In der libg++ gibt es eine Klasse fuer die Generierung von Zufallszahlen
f> unterschiedlichster Verteilungen. Ansonsten koennen ja auch noch die
f> Standard- C-funktionen rand und random verwendet werden.

Tja, ich habe auch erst gedacht random() wäre ANSI C. Isses aber nicht.

Tschüßi
                  TIMMI@H-HOUSE.domino.de
  _-_-_-_-_-_-     TIMMI@DOUBLE-M.domino.de
    _-_-    _-   _     _          _     _   -_
  _-_-   _-_-  _-_-_ _-_-_      _-_-_ _-_-_  -_-_
_-_-   _-_-  _-_-   -   -_-_  _-_-   -   -_-_  -_-_

                  -=­   02305-42242  ­=-
               -=­ Cosysop of HardHouse ­=-

Call us...now !!!
## CrossPoint v3.1 ##
Re: Zufallsfunktion unter C++?
#2062
Author: Tim Chittka
Date: Tue, 09 Apr 1996 17:48
32 lines
1571 bytes
Hier mein Riplai auf die Mail
von Dienstag dem 06.04.96 von watzka@stat.uni-muenchen.de
im Brett /DE/COMP/LANG/C++
zum Thema "Re: Zufallsfunktion unter C++?":

Halloele ihr UserInnen,
besonders *watzka*

w> >e> Gibt es eine Zufallsfunktion unter C++, aehlich wie in BASIC der Befehl
w> >e> RND?
w>
w> >Abba sicha doch,   random   zum Bleistift.
w>
w> Das letze mal als ich nachgesehen habe, war "random()" noch nicht im
w> DWP. Auch im ARM steht nichts darueber.

Kann sein, ist allerdings auch kein ANSI C Standard.
Dafür aber der Befehl rand() und srand().
Oder unterstützt Dein Compiler etwa kein ANSI ? :-))

Tschüßi
                  TIMMI@H-HOUSE.domino.de
  _-_-_-_-_-_-     TIMMI@DOUBLE-M.domino.de
    _-_-    _-   _     _          _     _   -_
  _-_-   _-_-  _-_-_ _-_-_      _-_-_ _-_-_  -_-_
_-_-   _-_-  _-_-   -   -_-_  _-_-   -   -_-_  -_-_

                  -=­   02305-42242  ­=-
               -=­ Cosysop of HardHouse ­=-

User/Points are welcome !!!
## CrossPoint v3.1 ##
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads