Je cherche une fonction random en C/C++

Résolu/Fermé
TexTwil Messages postés 298 Date d'inscription jeudi 25 octobre 2001 Statut Membre Dernière intervention 8 juin 2009 - 21 mars 2002 à 14:37
 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

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
TexTwil Messages postés 298 Date d'inscription jeudi 25 octobre 2001 Statut Membre Dernière intervention 8 juin 2009 20
22 mars 2002 à 07:21
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 jeudi 25 octobre 2001 Statut Membre Dernière intervention 8 juin 2009
22 mars 2002 à 08:14
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