IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

générer des flottants aléatoires compris entre [0et 1]


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut générer des flottants aléatoires compris entre [0et 1]
    Salut !
    J'ai un petit problème , je souhaite générer des flottants aléatoires compris entre [0et 1]
    j'ai utilisé la fonction :

    float r= (float)rand()/RAND_MAX;


    elle me génère des nombre comme suit :
    0.865630
    0.865600
    0.865623

    en quelque sorte c'est juste les puissances 10**-4 qui sont générés aléatoirement .je ne c pas comment changé la précision de génération de ces réels .

    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    Le code que tu donnes est correct et fonctionne... (ie. renvoie bien des nombres entre 0 et 1)
    Ton erreur doit sans doute venir d'ailleurs. Donne un peu plus de source et on verra...

  3. #3
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Salut

    Où t'as vu des flottants 10^-4 dans le resultat cidessus?

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    Citation Envoyé par Gruik
    Salut

    Où t'as vu des flottants 10^-4 dans le resultat cidessus?
    Pas dans le résultat ci-dessus, mais dans un programme c standart...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Fabllot
    Le code que tu donnes est correct et fonctionne... (ie. renvoie bien des nombres entre 0 et 1)
    Ton erreur doit sans doute venir d'ailleurs. Donne un peu plus de source et on verra...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (j=0; j<n1;++j)
    {//6
     srand(time(0)); //Initialisation du générateur
    float  r= (float)rand()/RAND_MAX;
     printf("%f",r);
    } //6
    je pense que c a cause de srand(time(0));

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    c bien a cause de cette instruction , je suis vraiment bête , désolé ,
    et merci

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    En effet...
    En gros, srand() sert à initialiser la fonction rand (). Il faut donc ne l'appeler qu'une seule fois au début du programme et non à chaque tour de boucle.

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par nimportekoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (j=0; j<n1;++j)
    {//6
     srand(time(0)); //Initialisation du générateur
    float  r= (float)rand()/RAND_MAX;
     printf("%f",r);
    } //6
    je pense que c a cause de srand(time(0));
    Ben oui...

    http://emmanuel-delahaye.developpez.com/notes.htm#rand

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Générer des nombres aléatoires entre 2 bornes
    Par Isabella83 dans le forum C
    Réponses: 6
    Dernier message: 18/04/2015, 11h14
  2. [Math / Random] Génération nombre aléatoire compris entre deux bornes
    Par oligig dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 30/06/2013, 17h23
  3. Générer des couleurs aléatoires
    Par sbeu dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/06/2006, 16h21
  4. Réponses: 2
    Dernier message: 16/05/2006, 17h02
  5. Réponses: 16
    Dernier message: 08/03/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo