Je le code suivant:nombres aléatoires dans une gamme successives
#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;
}
Si je lance ce programme succesions, puis-je obtenir le même nombre. Mais quand je lance celui-ci avec la déclaration de Cout comme:
std::cout<<getRandomNumber(1,6)<<getRandomNumber(1,6);
Je reçois des numéros différents à chaque fois. Alors, comment est-ce possible? Est-ce que je manque quelque chose?
Je lance le programme ci-dessus avec deux cout. Il donne les deux mêmes nombre que le résultat. – denis
Je vous vois en utilisant un nombre entier. Il peut être généré en utilisant uniquement rand(). Pourquoi vous traverser beaucoup de problèmes. 'cout << rand() << "" << rand();' – denis
Par ailleurs; getRandomNumber() peut générer au plus RAND_MAX + 1 nombres différents, indépendamment de min et max. Et il est relativement facile de prédire les nombres qui ne peuvent pas être retournés. – Loreto