Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
900 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Comment générer un nombre aléatoire en C++ ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment générer un nombre aléatoire en C++ ?

n°2204960
KomkHOMBR'
Posté le 01-10-2013 à 18:41:20  profilanswer
 

Bonjours :hello:  
 
Je suis débutant en C++ (j'en suis aux fonctions :sol: ) et pour m'entrainner aux conditions et boucles je voulais faire un "jeu" sur console mais pour ça il me faut générer un nombre aléatoire.
J'ai déjà fais des recherches et j'ai vu la fonction rand mais seulement en C :(  et je n'ai jamais touché au C (j'ai vu que ça fonctionne pour les deux si on adapte le code).
 
Comment faire en C++ svp ?
 
Merci d’avance  :ange:  
 
KomkHOMBR

mood
Publicité
Posté le 01-10-2013 à 18:41:20  profilanswer
 

n°2204970
Farian
Posté le 01-10-2013 à 19:35:37  profilanswer
 

Bonjour !
 
Aucune adaptation n'est nécessaire pour utiliser la fonction "random" du C en  C++.
 
Sinon, pour du C++ "pur", boost::random (mais un peu pointu à utiliser ...).
 
Bonne continuation !

n°2204974
KomkHOMBR'
Posté le 01-10-2013 à 19:50:40  profilanswer
 

Merci !
 
Juste pour en c les "printf" j'ai essayé de les remplacer par un "cout <<" mais ça me met un message d’erreur sur cette ligne ... Dois-je laisser le "printf" ? Parce que c'est moins évident pour la lisibilité.
 
Merci  

n°2204980
KomkHOMBR'
Posté le 01-10-2013 à 20:15:46  profilanswer
 

(désolé pour le double post)
J'ai regardé pour la fonction boost::random mais je ne comprend pas grand chose ...
Ma question est : ai-je les connaissance nécessaires pour comprendre ça (je sais seulement faire tous types de variables avec des calcus des entrées et sorties ... des boucles (while, do...while et for) et des conditions (booléens, if et switch) et je commence à apprendre les fonctions ...) ?

n°2204982
Farian
Posté le 01-10-2013 à 21:59:01  profilanswer
 

Comme je le disais, les bibliothèques de boost sont souvent un peu pointues ... Vous devriez peut-être mettre cette idée de coté dans un premier temps. Quand vous serez plus à l'aise avec certains concepts avancés (templates principalement, pour Boost), vous pourrez y revenir.
 
En revanche, pour le std::cout, je ne saurais trop vous encourager à l'utiliser. En règle générale, faites du vrai C++, pas du C compilé en C++.
 
Bonne continuation !

n°2204988
Terminapor
I'll see you rise.
Posté le 01-10-2013 à 23:31:51  profilanswer
 

KomkHOMBR' a écrit :

(désolé pour le double post)
J'ai regardé pour la fonction boost::random mais je ne comprend pas grand chose ...
Ma question est : ai-je les connaissance nécessaires pour comprendre ça (je sais seulement faire tous types de variables avec des calcus des entrées et sorties ... des boucles (while, do...while et for) et des conditions (booléens, if et switch) et je commence à apprendre les fonctions ...) ?


 
Non, surtout que boost est assez vilain niveau syntaxique :D
 
Si tu débutes, faire du C++ sous la forme de "C avec des cout" c'est vraiment pas ce que je te recommanderais.
 
Commences par le C, dans ce cas pour le random tu as la fonction rand() qui te renvoi un entier au hasard entre 0 et RAND_MAX (ou MAX_RAND je sais jamais). Elle est dispo dans via stdlib (#include <stdlib.h> ), sinon en C++ tu as boost::random et std::random dispo (C++11 par contre).
 
Sinon, le cout s'utilise comme ça :  

Code :
  1. int main()
  2. {
  3.     int i = 10;
  4.     std::cout<<i<<std::endl; // Ca affichera 10 et fera un retour à la ligne, en C ça serait printf("%i\n",i);
  5.     std::cout<<"Hello World, i = "<<i<<std::endl; // Affichera Hello World, i = 10 avec un retour à la ligne, en C ça serait printf("Hello World, i = %i\n",i);
  6.     std::cout<<"blabla "<<i<<" blabla"; // Affichera blabla 10 blabla, en C ça serait printf("blabla %i blabla", i);
  7. }


 
Le std:: est important avant le cout, cout fait parti du namespace std, tu peux t'en dispenser en écrivant "using namespace std;" mais je ne te le recommande pas. Si tu veux en savoir plus sur les namespaces, tu trouveras des infos dessus en français & en anglais assez facilement sur internet ;)


---------------
Perhaps you don't deserve to breathe
n°2205069
gilou
Modérateur
Modzilla
Posté le 02-10-2013 à 16:12:15  profilanswer
 

KomkHOMBR' a écrit :

Bonjours :hello:  
Comment faire en C++ svp ?
KomkHOMBR

En utilisant les fonctions standard de <random>
 

Code :
  1. #include <iostream>
  2. #include <random>
  3. int main()
  4. {
  5.   const int minimum = 1;
  6.   const int maximum = 10;
  7.   std::uniform_int_distribution<int> distribution(minimum, maximum);
  8.   // entiers répartis au hasard de manière uniforme
  9.   std::default_random_engine generateur;
  10.   const auto tirages = 20; // nb de tirages
  11.   for (auto i = 0; i < tirages; ++i) {
  12.     int nombre = distribution(generateur);
  13.     std::cout << nombre << std::endl;
  14.   }
  15.   return 0;
  16. }


 
A+,


Message édité par gilou le 02-10-2013 à 16:16:39

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2205085
KomkHOMBR'
Posté le 02-10-2013 à 19:55:16  profilanswer
 

Merci pour vos réponses !
 
Terminapor, je n'utilise que les cout car je fais du c++ c'est en cherchant le code que j'ai appris que les printf en c étais l'équivalent du cout en c++ (je n'ai jamais fait de c donc je code comme j’apprends en c++) mais merci à toi aussi ;)
 
Je vais donc apprendre à utiliser std::cout
 
Encore merci et a+

n°2206173
Joel F
Real men use unique_ptr
Posté le 10-10-2013 à 07:25:30  profilanswer
 

Terminapor a écrit :


 
Non, surtout que boost est assez vilain niveau syntaxique :D


 
Tellement vilain que boost::random a été standardisé en C++11 sous la forme de std::random :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Comment générer un nombre aléatoire en C++ ?

 

Sujets relatifs
Configurer les registres d'un PIC18F en CResoudre une equation du second degre en C (suite)
Afficher un très grand nombre entierBesoin d'idée coulée faire le code source en C + +
[C++] PX, Un toolkit X11 sous LinuxImport de la fonction C Math modf et utilisation.
C# ADO.NET DataSet et DataTableFixer le nombre de caractères par ligne d'un fichier
[C/C++] Cherche fun en prog à plusieurs (social coding)[C] Bout de code fonctionne avec gdb mais pas en vrai [Résolu]
Plus de sujets relatifs à : Comment générer un nombre aléatoire en C++ ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR