Für Vorlesungen, bitte die Webseite verwenden. https://flavigny.de/lecture
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

25 lines
540B

  1. class Zufall {
  2. public:
  3. Zufall (unsigned int anfang);
  4. unsigned int ziehe_zahl ();
  5. private:
  6. unsigned int x;
  7. } ;
  8. Zufall::Zufall (unsigned int anfang) {
  9. x = anfang;
  10. }
  11. // Implementierung ohne lange Arithmetik
  12. // siehe Numerical Recipes, Kap. 7.
  13. unsigned int Zufall::ziehe_zahl ()
  14. {
  15. // a = 7^5, m = 2^31-1
  16. unsigned int ia = 16807, im = 2147483647;
  17. unsigned int iq = 127773, ir = 2836;
  18. unsigned int k = x/iq;
  19. x = ia*(x-k*iq)-ir*k;
  20. if (x<0) x = x+im;
  21. return x;
  22. }