C++ Zufallszahl erstellen zwischen 20 und 30 wie?

2 Antworten

Einfache Formel:

rand() % (max - min + 1) + min;

oder du verwendest einen Generator: http://www.cplusplus.com/reference/random/


bodoooosdfer 
Beitragsersteller
 09.09.2019, 22:25

Was bedeutet das (max - min + 1)?

regex9  09.09.2019, 22:56
@bodoooosdfer

Das sind die Grenzen (inklusive), zwischen denen die Zufallszahl ermittelt wird.

Damit du bei jedem Programmaufruf eine neue Zufallszahl bilden lassen kannst, würde ich dir bei dieser Methode noch empfehlen, einen Seed zu streuen. Ein Beispiel dafür findest du in der Dokumentation zur rand-Funktion.

#include <random>

// ...

using namespace ::std;

mt19937 prng { random_device {} () }; 

uniform_int_distribution dist { 20, 30 };

auto rand { [] () {
  return dist(prng);
} };

// ...

// Zufallszahl zwischen 20 u. 30:
cout << rand() << endl;
Woher ich das weiß:Berufserfahrung

Apfelgriebsch  09.09.2019, 22:45

Disclaimer: Nicht getestet und ein C++17 Compiler wird vorausgesetzt!