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

VB.NET Discussion :

créer nombre aléatoire


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut créer nombre aléatoire
    Bonjour,

    Une question vraiment très bête, mais là, j'comprends vraiment pas.

    Je veux créer un nombre aléatoire compris entre 0 et 1 inclus (ou exclus, j'm'en moque en fait)

    J'utilise donc la fonction rnd()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim hasard as integer
    hasard=rnd()
    Le problème, c'est que je me suis rendu compte un peu par hasard qu'en fait, hasard prend la valeur 0 ou 1 (jamais qqch entre), et surtout, selon une séquence régulière!!!!
    J'appelle plusieurs fois la fonction random, et si je relance mon code, j'obtiens les mêmes résultats pour hasard à chaque fois!!!!!!!!!!!!!!

    C'est quoi le soucis là?!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Bonjour,
    Effectivement, c'est une question un peu bête quand tu auras lu ma réponse...

    Un integer, c'est un entier, donc ça prend une valeur entière de type 0,1,-2...
    Et donc, c'est pas un réel qui prend les valeurs décimales.
    Si ta variable Hasard est de type Double, tu devrais voir tes valeurs aléatoires...

    Et, encore mieux, si tu avais mis l'option Explicit à On sur ton projet, tu aurais pu détecter cette erreur de transtypage.
    Sans cette option, VB s'autorise des conversions quand c'est possible, en l'occurrence, ici, il a fait un arrondi (soit à 0, soit à 1)...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 134
    Points : 92
    Points
    92
    Par défaut
    pour commencer tu devrais dejà essayer en déclarant un un single plutot q'un nombre entier.

    la fonction rnd retoune en single et nom un entier

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    lol le pourquoi mon entier ne peut pas avoir de décimales ^^

    sinon pour que la séquence change d'un démarrage à l'autre, il faut appeler randomize au début du programme (car un pc ne sait pas générer un nombre aléatoire, c'est déterministe, randomize sert à les mélanger je crois)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    (car un pc ne sait pas générer un nombre aléatoire, c'est déterministe, randomize sert à les mélanger je crois)
    Plus exactement, Randomize initialise la "seed" du générateur de nombres aléatoires (la valeur initiale à partir de laquelle il génèrera la séquence). Si on passe toujours le même paramètre à Randomize, on obtiendra toujours la même séquence. Sans paramètre, ça utilise l'horloge du PC.

  6. #6
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bon, écoutez euh... il était très tard quand j'ai écrit ça
    Roooo et puis je programme jamais en VB .Net, alors j'ai écrit la déclaration sans réfléchir...

    Je sors, en courant, fermant la porte derrière moi, rouge de honte.
    Merci en tout cas!

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    pense au tag

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    faut pas avoir honte

    et pi y en a qui posent des questions qui sont chiantes
    alors que des comme ca, ca détend ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 25/05/2007, 16h28
  2. Nombres aléatoires
    Par Mat 74 dans le forum Assembleur
    Réponses: 20
    Dernier message: 29/08/2004, 13h31
  3. recherche algo de génération de nombre aléatoire
    Par Pascale38 dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 14h20
  4. Nombre aléatoire en SQL
    Par sqlnet dans le forum Langage SQL
    Réponses: 8
    Dernier message: 19/08/2003, 12h38
  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