élimner les doublons dans un tableau vbscript
bacalao
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjours a tous,
Voila je débute avec vbscript,
Hier j'ai voulu essayer la fonction Random avec un tableau d'une dimension, je vous explique mon exemple :
je veux créer un tableau d'une dimension et le remplir avec des numéros générer par random, jusque la tous est ok :
Le problème c'est que Random rempli toujours le tableau avec un doublon, pour remédier a cela, j'ai essayé d'introduire une condition if avec des OR sur chaque ligne mais ça ne marche pas j'ai essayé aussi d'introduire un For each, rien non plus !
en résumer je cherche comment introduire une condition dedans : tant qu'on trouve un doublon dans une ligne on rappelle la fonction Random pour le remplir a nouveau jus qu'on obtient un tableau sans doublon
Quelqu'un a une idée
Merci d'avance
Voila je débute avec vbscript,
Hier j'ai voulu essayer la fonction Random avec un tableau d'une dimension, je vous explique mon exemple :
je veux créer un tableau d'une dimension et le remplir avec des numéros générer par random, jusque la tous est ok :
Option Explicit Dim max,min,i,n,Tab(4) '==============================' 'Fonction Random '==============================' Function Random() max=8 min=1 Randomize Random = (Int((max-min+1)*Rnd+min)) End function '==============================' 'End Fonction '==============================' n = 1 Do While n < 5 'remplissage du tableau avec do while Tab(n-1) = Random() wscript.echo Tab(n-1) ' m'affiche les numéros rempli dans chaque ligne n = n + 1 Loop '==============================' 'End Fonction '==============================' n = 1 Do While n < 5 'remplissage du tableau avec do while Tab(n-1) = Random() wscript.echo Tab(n-1) ' m'affiche les numéros rempli dans chaque ligne n = n + 1 Loop
Le problème c'est que Random rempli toujours le tableau avec un doublon, pour remédier a cela, j'ai essayé d'introduire une condition if avec des OR sur chaque ligne mais ça ne marche pas j'ai essayé aussi d'introduire un For each, rien non plus !
en résumer je cherche comment introduire une condition dedans : tant qu'on trouve un doublon dans une ligne on rappelle la fonction Random pour le remplir a nouveau jus qu'on obtient un tableau sans doublon
Quelqu'un a une idée
Merci d'avance
A voir également:
- élimner les doublons dans un tableau vbscript
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Doublons photos - Guide
2 réponses
Tu ne sembles pas parler de monnaie, et encore moins de moutons, alors ce sera la deuxième fois que je présente ce lien : https://forums.commentcamarche.net/forum/affich-21166785-nombre-aleatoires-c
Mais bon, il semble que ton script ne nécessite pas une si grande optimisation que ça. Donc, pour «éliminer les doublons» comme tu dis, ta solution fonctionnerais sans problèmes «pratiques» à ce qu'il semble. Toutefois, je pense qu'il te serait préférable d'utiliser la solution présenté sur le poste duquel j'ai posé le lien ci-haut. Bref, décrémenté le modulo à chaque itération, et incrémenter la valeur obtenue pour chaque nombre inférieur ou égale à celle-ci. Si tu veux, je poste un petit code, cette fois en VBScript, qui le fait.
Mais bon, il semble que ton script ne nécessite pas une si grande optimisation que ça. Donc, pour «éliminer les doublons» comme tu dis, ta solution fonctionnerais sans problèmes «pratiques» à ce qu'il semble. Toutefois, je pense qu'il te serait préférable d'utiliser la solution présenté sur le poste duquel j'ai posé le lien ci-haut. Bref, décrémenté le modulo à chaque itération, et incrémenter la valeur obtenue pour chaque nombre inférieur ou égale à celle-ci. Si tu veux, je poste un petit code, cette fois en VBScript, qui le fait.