class Zufall { public: Zufall (unsigned int anfang); unsigned int ziehe_zahl (); private: unsigned int x; } ; Zufall::Zufall (unsigned int anfang) { x = anfang; } // Implementierung ohne lange Arithmetik // siehe Numerical Recipes, Kap. 7. unsigned int Zufall::ziehe_zahl () { // a = 7^5, m = 2^31-1 unsigned int ia = 16807, im = 2147483647; unsigned int iq = 127773, ir = 2836; unsigned int k = x/iq; x = ia*(x-k*iq)-ir*k; if (x<0) x = x+im; return x; }