begin process at 2010 02 10 07:34:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

permutation d'éléments dans un tableau


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

permutation d'éléments dans un tableau

lundi 23 juillet 2007 à 10:14:30 | permutation d'éléments dans un tableau

hela_bouks

Salut,
J'ai un tableau de vingt éléments P1, P2, ..., P20 et je voudrai, à partir de ce tableau, en créer un autre contenant les mêmes éléments mais dans un ordre complétement aléatoire par exemple P4,P8,P15,P1,P19,...
Merci beaucoup de votre aide
lundi 23 juillet 2007 à 10:26:29 | Re : permutation d'éléments dans un tableau

jrivet

Membre Club
Salut,
Regarde ce petit code.
Je suis sûr qu'il y a plus optimal, mais l'idée est là.

Option Explicit

'Tableau source
Private Source(1 To 20) As Integer
'Tableau Destination
Private Destination(1 To 20) As Integer
'Tableau mémoire des indices déjà récupérer
Private IndicesFaits(1 To 20) As Boolean

Private Sub Form_Load()
Dim i As Integer
Dim IndiceCourant As Integer
'on remplit la source de 1 à 20
For i = 1 To 20
   Source(i) = i
Next

Randomize
'indice courant du tableau de destination
IndiceCourant = 1
'tant que tout les indices
'n'aurotn pas été tirés
While Not ToutFait
   'i tiré au hasard
   i = Int((20 * Rnd) + 1)
   'si i n'est pas un indice déjà fait
   If Not IndicesFaits(i) Then
       Destination(IndiceCourant) = Source(i)
       'memorise que l'indice est passé
       IndicesFaits(i) = True
       'incrémentation de indicecourant
       IndiceCourant = IndiceCourant + 1
   End If
Wend

End Sub


Private Function ToutFait() As Boolean
Dim i As Integer
   ToutFait = True
   For i = 1 To 20
       If Not IndicesFaits(i) Then
           ToutFait = False
           Exit For
       End If
   Next
End Function
By Renfield


@+: Ju£i€n
Pensez: Réponse acceptée
lundi 23 juillet 2007 à 12:45:48 | Re : permutation d'éléments dans un tableau

EBArtSoft

Administrateur CodeS-SourceS

Sub ShuffleTable(ByRef t() As Long)
    Dim tmp   As New Collection
    Dim i     As Long
    Dim n     As Long
    Randomize Timer
    For i = 0 To UBound(t)
        tmp.Add i
    Next
    For i = 0 To UBound(t)
        n = 1 + Int(Rnd * tmp.Count)
        t(i) = tmp(n)
        tmp.Remove n
    Next
End Sub

C'est pas plus rapide mais c'est plus court

@+

[Code]E.B.[/Code]

lundi 23 juillet 2007 à 15:05:03 | Re : permutation d'éléments dans un tableau

EBArtSoft

Administrateur CodeS-SourceS
Ou bien ceci :

Sub ShuffleTable2(ByRef t() As Long)
    Dim p() As Long
    Dim i   As Long
    Dim k   As Long
    Randomize Timer
    k = UBound(t)
    ReDim p(k)
    For i = 0 To k
        p(i) = t(i)
    Next
    While (k >= 0)
        i = Int(Rnd * k)
        t(k) = p(i)
        p(i) = p(k)
        k = k - 1
    Wend
End Sub

[Code]E.B.[/Code]


Cette discussion est classée dans : p1, tableau, éléments, permutation


Répondre à ce message

Sujets en rapport avec ce message

créer dynamiquement des variables [ par guiguimac ] Bonsoir,je suis en train de de faire un outils pour parser un fichier xml.disons que ce fichier est décomposé en éléments, eux même décomposés en sous tableau de string: nombre d'éléments? [ par spacest ] Au secours Voici mon problème: Je mets une phrase dans un tableau avec la fonction split: toto="gui,der,match,poireau"texte=split(toto,"'")je cherche Tableau en VBscript [ par gwenadu ] Hello !Je bosse depuis peu sur le VBscript, enfin, à une sorte de VBscript (utilisée avec le logiciel COMMENCE). N'ayant pas reçu de formation, et la Nombre d'éléments d'un tableau [ par CrisseTof ] Bonjour,J'ai un tableau de trois dimension et j'aimerais connaitre le nombre d'élements d'une dimension.Pour être plus clair j'aimerais utiliser une ' Connaître le nombre d'éléments d'un tableau? [ par phantom_2005 ] bonjour,comment puis-je faire pour déterminer le nombre d'éléments d'un tableau de taille inconnue?Y a t il une fonction spécifique?Mon tableau est co Suppression d'éléments dans tableau d'objets et redimensionnement [ par doggyk ] Salut!J'ai un tableau d'objet(une classe perso) créé dynamiquement. Je souhaiterais supprimer certains éléments de ce tableau et si cet élément est au somme des éléments d'un tableau [ par mlhaquin ] bonjour, j'ai un tableau à 1 colonne créé sous VB et je voudrais additionner les éléments de ce tableau. est-ce que quelqu'un peut m'aider, je suis dé listbox limitée a 3 elements pour 100000 autres elements. [ par kesm ] bonjour, j'ai un énoncé que voici : 1. Créer un tableau en mémoire de 100 000 chaînes de caractères. Initialiser cetableau avec des chaînes de la form


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,515 sec (3)

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