Comment travailler avec la fct rand()?????????????

Résolu/Fermé
croiyance Messages postés 7 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 24 juin 2013 - 24 avril 2013 à 19:32
croiyance Messages postés 7 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 24 juin 2013 - 24 avril 2013 à 20:17
Bonjour,


j'ai un problème avec la fonction rand() comment travailler avec une telle fonction ;
moi je souhaite avoir un tableau tab[N] et je veut avoir un élément aléatoire de ce tableau pour la sélection de la population initiale (algo génétique) et je veut aussi des lient pour télécharger des livres pour apprendre à programmer le c++

Merci;

2 réponses

Salut,

rand() va retourner une valeur qui n'est peut être pas comprise dans les limites de ton tableau.
Il faut fractionner la valeur de retour de rand() si tu veux qu'elle soit comprise dans une certaine échelle.

Il faut donc aussi connaître la taille de ton tableau.
Si elle est fixe, pas de soucis, par contre si elle est variable ...

#include <stdlib.h>  

inline int RangedRand( int range_min, int range_max )  
{  
 return (int)rand() / (RAND_MAX + 1) * (range_max - range_min) + range_min;  
}  


Et pour connaître le nombre d'éléments de ton tableau :
https://www.commentcamarche.net/contents/120-langage-c-les-tableaux

Donc on pourrait imaginer quelque chose du style :
int nombre_elements = sizeof(tontableau) / sizeof(typeof(tontableau));

Et ainsi utiliser :

int nombre_elements = sizeof(tab) / sizeof(typeof(tab));  
int element = RangedRand( 0, nombre_elements - 1 );  
tab[element] ......  


à vérifier.
Musicalement,
DJ Fire-Bl@ck.
0
croiyance Messages postés 7 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 24 juin 2013
24 avril 2013 à 20:17
salut;

merci bcp DJ Fire-Black vous m'avez aidez à travailler avec la fonction rand() marci encor une fois
0