Je cherche une fonction random en C/C++

Résolu
TexTwil Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   -  
 Giento - 21 mars 2017 à 23:15
Salut,
je cherche une fonction random sous C/C++: le fonction random() du C++ renvoie une valeur entre 0 et X mais j'aurais besoin d'une fonction du type:
random(4,5,7,9) qui renverrait soit 4 soit 5 soit 7 soit 9. Je sais pas si ca existe et c pour ca que je demande.
merci
A voir également:

18 réponses

Hilikus
 
En C, tu peut faire ainsi

Au début du programme, tu initialises le générateur de nombre aléatoire.

srand(time(null)); // Une fois suffit

ensuite, pour générer un nombre aléatoire, tu n'as plus qu'à taper :

int nb_aleatoire = Rand();

Si tu veut un nombre compris dans un interval, tu te sert de l'opérateur modulo.
exemple; tu veut un nombre entre 1 et 100.

int nb_alea;
nb_alea = (Rand() % 100) + 1;

Il te faudra aussi inclure les bibliothèques :
- stdlib.h
- time.h

J'espere que ca pourra t'aider
63
TexTwil Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   20
 
Merci, mais vous n'avez pas du comprendre ce que je voulais. Je sais bien comment marche la fonction random( ), mais ce dont j'ai besoin n'est pas un nombre aleatoire entre 0 et x mais un nombre aléatoire choisi dans un ensemble précisé. Par ex, imaginez que je désire que cette fonction me renvoie un nombre appartenant à {1,5,7,6,9}. Je veux donc qu'elle renvoie soit 1 soit 5 soit 7 soit soit 6 soit 9 , et pas autre chose.
ok, merci
0
chmanu > TexTwil Messages postés 298 Date d'inscription   Statut Membre Dernière intervention  
 
voila ce que je te propose :
tout depend en fait de ton intervalle. est il constant, grand, a t il une grande amplitude,...

donc tu fais ton random (voir + haut) puis tu testes si le nbre renvoyé est dans ton intervalle avec :
typedef mon_intervalle {1,5,6,9,8};
Si c est le cas, tu le garde, sinon t en prend un autre (while).
0