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

Algorithmes et structures de données Discussion :

Nombre "aléatoire" entre 0 et 1 : où est le 0 et le 1 ?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut Nombre "aléatoire" entre 0 et 1 : où est le 0 et le 1 ?
    Bonjour ,

    Pouvez-vous me dire pourquoi , lorsque j'utilise une fonction permettant de générer des nombres aléatoire entre 0 et 1 , ces valeurs n'apparaissent jamais ?

    Du coup si je veux un tirage entre -10 et +10 avec cette syntaxe : 20*rnd-10 ; les valeurs -10 et +10 ne sont pas listées dans la série de nombres aléatoires.

    Merci.

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Théoriquement TOUT les nombres ont la même probabilité d'apparaitre.
    Disons que la précision de tes nombres est de 0,0001. Du coup la probabilité d'avoir un 0 ou un 1 est de 1 / 10001, ce qui est extrêmement faible et qui l'est en réalité encore plus car la précision des nombres est BEAUCOUP plus faible.

    Ensuite ta formule est juste pour avoir des nombres entre -10 et 10, mais le problème reste le même pour avoir -10 ou 10.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut
    cela veut-il dire qu'il est impossible d'avoir un tirage aléatoire [0;1] ?

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 289
    Par défaut
    Bonjour

    Du coup la probabilité d'avoir un 0 ou un 1 est de 1 / 10001
    Pardon, mais je crois que c'est plutôt le contraire: 0 a une chance sur 10 000 de sortir et 1 ne sort jamais. De la même façon qu'un octet a 256 valeurs possibles et 256 n'est jamais atteint car l'étendue est de 0 à 255.

    @macErmite: Lis la documentation de ta fonction de tirage aléatoire, et tu verras, dans les petites lignes, que 0 est inclus et 1 exclus. Formule mathématique
    Sans parler des langages qui ne tirent que des nombres entiers.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut
    Y a t il un moyen de contourner l'exclusion de 1 , quitte à coder sa propre fonction ?

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Citation Envoyé par macErmite Voir le message
    Y a t il un moyen de contourner l'exclusion de 1 , quitte à coder sa propre fonction ?
    Au lieu de tirer un nombre directement, tu as peut-être accès à une primitive de plus bas niveau pour récupérer un bit aléatoire à la fois (comme en Java).
    Sinon, plus simplement, si tu souhaites un nombre entier entre -10 et 10, tu peux faire passer ton nombre entre -10,5 et 10,5 puis arrondir (Formule mathématique), de telle sorte que chaque valeur en sortie est associée à un "bac" de largeur constante (sans ça, les valeurs -10 et 10 sont moins probables que les autres).
    Si tu veux un nombre à virgule flottante, le comportement attendu est le seul cohérent .
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par macErmite Voir le message
    Pouvez-vous me dire pourquoi , lorsque j'utilise une fonction permettant de générer des nombres aléatoire entre 0 et 1 , ces valeurs n'apparaissent jamais ?
    .
    Euh....

    Quelle fonction ? de quel logiciel ??


    En général, ces fonctions ont une documentation...

    Qui devrait expliquer comment s'en servir..

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

Discussions similaires

  1. [XL-2010] Générer un nombre aléatoire entre 1 et 9999
    Par GADENSEB dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 31/08/2014, 10h48
  2. [Débutant] Nombre aléatoire entre 0 et 100!
    Par iVarlix dans le forum C#
    Réponses: 1
    Dernier message: 25/06/2014, 21h13
  3. Réponses: 1
    Dernier message: 02/04/2010, 17h43
  4. Generer un nombre aléatoire entre 0 et 1
    Par Eclipse39 dans le forum Débuter
    Réponses: 2
    Dernier message: 10/02/2009, 21h26
  5. Générer un nombre aléatoire entre 0 et 1 (INCLUS !!!)
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/08/2002, 16h30

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