Ich habe diesen Code ein:aufeinanderfolgenden Zufallszahlen in einem Bereich
#include <iostream>
#include <cstdlib>
#include <ctime>
int getRandomNumber(int min,int max)
{
static const double fraction = 1.0/(static_cast<double>(RAND_MAX)+1.0);
return static_cast<int>(rand()*fraction*(max-min+1)+min);
}
int main()
{
srand(static_cast<int>(time(0)));
std::cout<<getRandomNumber(1,6);
return 0;
}
Wenn ich dieses Programm in succesions laufen, dann bekomme ich die gleiche Nummer. Aber wenn ich dieses mit Cout-Anweisung wie ausführen:
Ich bekomme jedes Mal andere Nummern. Also wie ist das möglich ?? Fehle ich etwas?
Ich führe das obige Programm mit zwei cout. Es gibt die zwei gleiche Zahl als Ergebnis. – denis
Ich sehe dich mit einer int-Nummer. Es kann nur mit rand() erzeugt werden. Warum machst du viel Ärger? 'cout << rand() << "" << rand();' – denis
Übrigens; getRandomNumber() kann höchstens RAND_MAX + 1 verschiedene Zahlen erzeugen, unabhängig von min und max. Und es ist relativ einfach, die Zahlen vorherzusagen, die nicht zurückgegeben werden können. – Loreto