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 :

un nombre pair en random?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 27
    Par défaut un nombre pair en random?
    VB 2005 Express

    Comment faire pour sortir un uniquement un nombre pair avec un random ?

    posYgauche = CInt(Int((80 - 44 + 1) * Rnd() + 1))

    En fait, j'ai besoin de multiple de 4 !

    44, 48, 92, ...etc

    Merci à l'avance,

    A+

  2. #2
    Membre chevronné

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Par défaut
    Si tu veux avoir que des nombres pairs, il suffit de tirer un nombre aléatoire dans une fenêtre 2 fois plus petite et multiplier le nombre tiré par 2.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 27
    Par défaut fenêtre plus petite ?
    Que voulez-vous dire par fenêtre plus petite ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 59
    Par défaut
    Essaye avec ca, j'ai pas testé mais ca pourrait t'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim valeur
            If valeur = Round((valeur / 2), 0) * 2 Then 'Test si PAIR
                If Int(valeur / 2) = valeur / 2 Then 'Test si multiple de 2
                 'ici ton code si le nb est pair et multiple de 2
                End If
            End If

  5. #5
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Mais non pour savoir si c'est pair, il faut vérifier si ce nombre est congru à 0 [2] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Nombre as Integer = Random..... 'récupère le nombre aléatoire
      Dim NombrePair as Integer
     
    If not Nombre Mod 2 = 0 Then 'si c'est impair
      NombrePair = Nombre * 2 'on le multiplie par 2
    Else 'sinon
      NombrePair = Nombre 'c'est bon
    End If
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 27
    Par défaut
    merci, je test ca et je vous en redonne des nouvelles !

  7. #7
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Pourquoi multiplier par deux et pas juste ajouter 1 ... sinon on aurai un nombre qui pourrai être en dehors de l'intervalle souhaitée ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim Nombre as Integer = Random..... 'récupère le nombre aléatoire
      Dim NombrePair as Integer
     
    If not Nombre Mod 2 = 0 Then 'si c'est impair
      NombrePair = Nombre + 1
    Else 'sinon
      NombrePair = Nombre 'c'est bon
    End If
    Après, si le nombre +1 est en dehors des valeurs souhaités, on fait juste -1 à la place ...

  8. #8
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par smyley Voir le message
    Pourquoi multiplier par deux et pas juste ajouter 1 ... sinon on aurai un nombre qui pourrai être en dehors de l'intervalle souhaitée ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim Nombre as Integer = Random..... 'récupère le nombre aléatoire
      Dim NombrePair as Integer
     
    If not Nombre Mod 2 = 0 Then 'si c'est impair
      NombrePair = Nombre + 1
    Else 'sinon
      NombrePair = Nombre 'c'est bon
    End If
    Après, si le nombre +1 est en dehors des valeurs souhaités, on fait juste -1 à la place ...
    Oui je suis bête

    Cependant même en rajoutant 1, on peut sortir de l'intervalle donc il faut une autre condition facile
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 27
    Par défaut le résultat du test * 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Nombre As Integer = CInt(Int((80 - 44 + 1) * Rnd() + 1)) 'récupère le nombre aléatoire        Dim NombrePair As Integer
            If Not Nombre Mod 2 = 0 Then 'si c'est impair
                NombrePair = Nombre * 2 'on le multiplie par 2
            Else 'sinon
                NombrePair = Nombre 'c'est bon        End If
            TextBox1.T
    ext = NombrePair
    End Sub
    ************************************
    cela sort des nombres pair ... super !, mais ca sort en dehors du "range" entre 44 et 80 seulement!
    *************************************
    Je vais tester avec l'autre méthode du + 1 et -1

    Je vous reviens !

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 27
    Par défaut c'est pair ...mais ?
    Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Nombre As Integer = CInt(Int((80 - 44 + 1) * Rnd() + 1)) 'récupère le nombre aléatoire
    Dim NombrePair As Integer
    If Not Nombre Mod 2 = 0 Then 'si c'est impair
    NombrePair = Nombre + 1
    Else 'sinon
    NombrePair = Nombre 'c'est bon
    End If
    TextBox1.Text = NombrePair
    End Sub
    *************************
    Ca sort toujours du "range" souhaité ?, mais ca sort des nombres pair aussi

    Pourquoi il ne tiens plus compte du minimum et maximum que je lui demande ?

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 26/11/2007, 19h47
  2. Nombre pair ou bien impair
    Par monoar dans le forum Ruby
    Réponses: 10
    Dernier message: 12/08/2007, 21h21
  3. [TP] Nombres pairs et impairs
    Par The future scientist dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 04/05/2007, 17h32
  4. Nombre pair sur Matlab
    Par cricri04 dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/03/2007, 16h46
  5. XSL nombre pair de pages
    Par Urthgard dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 25/06/2004, 10h45

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