[C/C++] Générer un nombre aléatoire

Générer un nombre aléatoire [C/C++] - C++ - Programmation

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

Reply

Marsh Posté le 03-11-2002 à 18:07:32   

Reply

Marsh Posté le 03-11-2002 à 20:51:41    

%N


---------------
du bon usage de rand [C] / [C++]
Reply

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}


---------------
iteme.free.fr | Mon feedback
Reply

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.

Reply

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 */
}

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed