Générer un nombre aléatoire [C/C++] - C++ - Programmation
Marsh Posté le 03-11-2002 à 21:20:27
Tu aurais du y penser toi même  
 
 
rand() % N -> resultat : un élément de l'ensemble {0,1,...,N-1}
Marsh Posté le 03-11-2002 à 21:21:48
Il y a pas plustot un rand qui retourne un float/double entre 0 et 1 ? Parceque la, rand c'est limité à produire des entiers pour ainsi dire.
Marsh Posté le 03-11-2002 à 23:20:06
/* Exemple de génération de nombre alétoires */ 
/* ----------------------------------------- */ 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
 
int haz(int nbr); /* Déclaration sous-fonction de génération */ 
 
int main () /* Fonction principale */ 
{ 
  int nb; 
  long seed=time(NULL); /* Initialisation des nombres aléatoires */ 
  srand48(seed); 
   
  printf("Entrez valeur max du nombre à générer: " ); 
  scanf("%d",&nb); 
  
  printf("\n" ); 
   
  while (1) 
    { 
      printf("%d ",haz(nb)); 
    } 
   
  return(0); 
} 
 
int haz(int nbr) /* Sous-fonction de génération */     
{ 
  return (int)((nbr+1)*drand48()); /* génération d'un nombre aléatoire entre 0 et nbr */ 
} 
Marsh Posté le 04-11-2002 à 00:20:42
Chouette, je connaissais pas ! 
 
Mais un tour dans le man me dit que ces fonctions ( drand48 et compagnie ) sont obsoletes  
 
 
il ne reste donc que un bon vieux (float(rand()) / RAND_MAX) alors. 
Marsh Posté le 03-11-2002 à 18:07:32
Salut,
Générer un nombre aléatoire avec rand, ok, mais comment faire pour que le nombre généré appartienne à un ensemble du genre [0;6] ?
merci
ANT