begin process at 2010 02 10 03:28:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

Fonction Random ! Rnd ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction Random ! Rnd ?

vendredi 4 janvier 2008 à 14:51:41 | Fonction Random ! Rnd ?

robapt

Bonjour à tous !

Voila, je fais un petit prog qui utilise la fonction Rnd et je voudrais savoir un truc.
Voici mon code :

Randomize
List1.AddItem Int((50 * Rnd) + 1)


Je n'est pas marqué tout le code mais en fait,j'ajoutte 10 nombre au hazard dans la listbox List1.
Comment faire pour que si le même nombre est tiré 2 fois ou plus, cela refase un Random juste pour les nombre identique ?

Merci à tous
vendredi 4 janvier 2008 à 14:58:11 | Re : Fonction Random ! Rnd ?

jmfmarques

Membre Club
Réponse acceptée !
"Comment faire pour que si le même nombre est tiré 2 fois ou plus, cela refase un Random juste pour les nombre identique ?"

Je ne comprends pas ...
Veux-tu simplement dire que tu bne veuxpas que le même nombre sorte 2 fois ?
Si oui : il ne faut pas "retirer" (ce n'est pas la meilleure méthode, qui risque de s'avérer lente) mais "éliminer" le nombre déjà tiré ...
vendredi 4 janvier 2008 à 15:05:15 | Re : Fonction Random ! Rnd ?

robapt

oui c'est sa! Désolé si j'ai été un peu flou dans mes explications! lol
Bon ok je vais faire mes recherche sur ce fameux "retirer"! ^^
Bon ben merci beaucoup jmfmarques !

Bon prog
vendredi 4 janvier 2008 à 15:07:41 | Re : Fonction Random ! Rnd ?

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
salut,

peut de modifications à apporter par rapport à ce snippet :
http://www.codyx.org/snippet_recuperer-aleatoirement-valeur-unique-tableau_348.aspx#1098

Function GetSingleValue(ByRef aArr() As String, sResult As String) As Boolean
    If UBound(aArr) = Then
'       reste  rien
        GetSingleValue = False
    Else
        GetSingleValue = True
        
'       on récupère  un index
        Dim Index As Long
        Index = Int((UBound(aMyArray) * Rnd) + (LBound(aMyArray) + 1))
'       on récupère la  valeur
        sResult = aArr(Index)
'       on  écrase la position par la dernière valeur et on supprime la dernière  position
        aArr(Index) = aArr(UBound(aArr))
        ReDim Preserve aArr(UBound(aArr) - 1)
    End If
End Function

'   EXEMPLE  D'UTILISATION (nécessite un bouton et une textbox)
Option Explicit
Dim aMyArray() As String 'attention, la premier index (0 ici) ne sera pas utilisé
'
'
Private Sub Form_Load()
'   applique le facteur "aléatoire"
    Randomize Timer
    
'   redimension et remplissage du tableau
    Dim As Long
    ReDim aMyArray(To 10)
    For i = LBound(aMyArray) + To UBound(aMyArray)
        aMyArray(i) = "chaîne [" CStr(i) & "]"
    Next i
'   pour le test....
    Text1.Width = 2895
    Text1.Text = vbNullString
End Sub
'
'
Private Sub Command1_Click()
    Dim sRet As String
    If GetSingleValue(aMyArray, sRet) Then
        Text1.Text = sRet
    Else
        Text1.Text = "Toutes les valeurs ont  été piochées"
    End If
End Sub

++
PCPT  [AFCK]

Prenez un instant pour répondre à ce sondage svp
vendredi 4 janvier 2008 à 15:12:41 | Re : Fonction Random ! Rnd ?
vendredi 4 janvier 2008 à 15:42:22 | Re : Fonction Random ! Rnd ?

jmfmarques

Membre Club
Réponse acceptée !

Tiens...

Avec un tableau et sans le redimensionner :

Private Sub Command1_Click()
 Randomize Timer
 Dim monnombre As Integer, combien As Integer, i As Integer, nb As Integer
 monnombre = 20  ' ici ton nombre max
 combien = 5 ' ici le nombre de tes titages (qui doit être inférieur ou égal à monnombre)
 ReDim montable(monnombre - 1)
 For i = 0 To monnombre - 1
   montable(i) = i + 1
 Next
 nb = UBound(montable)
 Dim ou As Integer, temp As String
 For i = 0 To nb \ 2
   ou = Int(((nb - i) * Rnd))
   temp = montable(ou)
   montable(ou) = montable(nb - i)
   montable(nb - i) = temp
 Next
 List1.Clear
 For i = 1 To combien
   List1.AddItem montable(i - 1)
 Next
End Sub

Ajoute une listbox list1 et un bouton Commande1
Fixe comme tu l'entends les valeurs de monnombre et de combien

 



Cette discussion est classée dans : fonction, nombre, code, rnd, random


Répondre à ce message

Sujets en rapport avec ce message

problème avec la fonction rnd (randomize) [ par kleuvert ] Salut !Voilà, j'ai un gros souci avec la fonction randomize : je veut en fait créer une petite fonction qui me donne un jours dans l'année au hasard, fonction random ? [ par elfingord ] Salut tlm,je suis débutant en vb (eh oui tjs) et j'aimerais savoir s'il existe une fonction qui permet de générer un nombre au hasard Si oui, pourrai Random [ par sebleboss2002 ] Voilà, j'ai bien l'impression d'avoir un problème... Je suis en train de coder un Yams, avec cinq dés donc, et je trouve que les chiffres qui sortent pb mysql [ par fiatydave ] bonjourà tous! j'utilise un code d'affichage multipages pour les résultats d'une requête mysql. j'ai trouvé ce code ici et il fonctionne bien: <a hr code barre [ par ostelen__ ] Bonjour, Je développe actuellement une application utilisant des codes barres en C# WinForm. J'utilise la norme EAN13 pour le codage de mes codes ba probleme fonction WaitForSingleObject lors de l'execution [ par thesbr ] bonjour a tous.j'ai un petit soucis de comprehension. je possede VisualBasic 6 sous win2000.je debut sous vb et je souhaite faire du MultiThread. j'u Code unique [ par Bzz ] plop, je develloppe une appli en ce moment qui seras distribuée a beaucoup d'utilisateurs.J'aimerais connaitre exactement le nombre d'utilisateurs et Formatage de nombre en SQL [ par bob10 ] Salut tout le monde, j'ai unez requête SQL toute simple du genreselect DATES, NOMBRE from ventesEt j'aurais voulu obtenir le champs nombre sur 2 carac inserrer le nombre " pi " dans un code vb [ par labriji ] Contenu d'une liste modifiable en fonction d'une variable [ par loic911 ] Salut, J'aimerais créer une liste modifiable en VBA (sous Access) qui afficherais des éléments d'une table MAIS en fonction d'un critère. En pratique


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales