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 :

Problème fonction random avec linux


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut Problème fonction random avec linux
    Bonjour,
    J'ai un petit problème avec la fonction rand() sous linux. Je déclare bien la bibliothèque (#include <stdlib.h>).

    J'initialise le rand() avec srand(time(NULL));

    Et j'écris la formule suivante.
    X=1+(int) ((largeur-1)*rand()/(RAND_MAX+1.0));

    Et ça me retourne à chaque fois 1.
    Ce qui m'étonne, c'est que cela marche sous windows.

    Merci.

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    largeur vaut peut etre 1

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Non, j'ai rien dit
    C'est juste que tu divises par RAND_MAX donc ça te sort un entier qui vaut toujours 0 (si tu avais casté en double, la valeur aurait été comprise entre [0, 1[)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut
    la doc de mon Kdevelop me dit de faire ça :

    "If you want to generate a random integer between 1 and 10, you should always do it by using high-order bits, as in j=1+(int) (10.0*rand()/(RAND_MAX+1.0));

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tout simplement, je crois.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut
    Oui celui la marche, mais la doc dit :

    "If you want to generate a random integer between 1 and 10, you should always do it by using high-order bits, as in j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
    and never by anything resembling j=1+(rand() % 10);
    (which uses lower-order bits)."

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par NaeiKinDus
    Tout simplement, je crois.
    Solution naive. Lire la FAQ C

Discussions similaires

  1. problème fonction mail() avec PHP 5.2 et IIS6
    Par Aliximo dans le forum IIS
    Réponses: 0
    Dernier message: 05/06/2008, 12h19
  2. problème fonction php avec connexion postgreSQL
    Par roblescriso dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/06/2008, 18h02
  3. Problème fonction perso avec Decaler
    Par stryge63 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/02/2008, 09h40
  4. simuler la fonction random avec rand
    Par k6971 dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2006, 19h33
  5. [MySQL] problème fonction php avec LAST_INSERT_ID()
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/12/2006, 09h51

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