Par défaut Random et valeurs différentes dans tableau
steve15
-
27 mars 2015 à 21:45
Whismeril
Messages postés18280Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 mars 2023
-
28 mars 2015 à 12:40
Bonjour,
Je suis débutant et je souhaite faire ceci :
Générer 12 chiffres, de 1 à 12 et tous différents, pour les stocker dans un tableau.
J'arrive à faire le random de 1 à 12, mais je suis débutant en tableau.
Ensuite, afficher dans 12 labels les valeurs générées précédemment.
Je sais que j'aurai certainement besoin d'une boucle dans laquelle je générerai un chiffre que je placerai dans la première case du tableau, ensuite une autre boucle pour reparcourir le tableau et tester si la nouvelle valeur générée existe déjà ou non s c'est le cas en générer une autre et si c'est pas le cas la placer dans la case suivante ... jusqu'à mais je sais vraiment pas comment m'y prendre pour commencer..
Pouvez-vous s.v.pl m'aider ?
Par avance merci.
dans cette boucle tu génères un random de 0 à 11, si la case ayant pour indice la valeur du random est vide tu la remplis par l'incrément de la boucle, sinon niveau random.
Pour les dernières cases ça peut être long, voir très long de tomber sur une cellule vide.
2 Est ce un exercice?
Oui ben t'as pas le choix...
Non? pourquoi utiliser un tableau? Les langages "modernes" ont apporté d'autres conteneurs bien plus souples d'emploi (collections, liste, etc...)
En utilisant 2 listes par exemple:
tu fais une boucle de 1 à 12, dans laquelle tu ajustes la valeur de l'itération dans la liste "Pioche"
tu fais un Do While tant que le nombre d'enregistrement de Pioche est supérieur à 0.
dans ce Do While, tu génères un random qui sera l'indice de la valeur de la Pioche que l'on "tire".
Tu ajoutes la valeur dans la liste Resultat et tu supprimes l'enregistrement dans la Pioche.
Le tirage durera toujours 24 itérations.
Modérer m'amène à intervenir dans de nombreux posts, mais les seuls langages que je connaisses sont le C# et un peu de VB. Pour vos codes pensez à la coloration.
Réponse trouvée ->Question Résolue
KX
Messages postés16668Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention17 mars 2023125 Modifié par KX le 27/03/2015 à 23:43
Bonjour,
Alternative :
Tu tires un nombres entre 0 et 11, tu permutes la case 11 avec le résultat.
Tu tires un nombres entre 0 et 10, tu permutes la case 10 avec le résultat.
...
Tu tires un nombres entre 0 et 1, tu permutes la case 1 avec le résultat.
Il y aura toujours 11 itérations, aucune consommation en mémoire, et c'est mathématiquement équiprobable.
Whismeril
Messages postés18280Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 mars 2023621
>
KX
Messages postés16668Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention17 mars 2023 28 mars 2015 à 07:50
Bonjour
J'apprends , donc la deuxieme solution me va !
Par contre niveau code ca donne quoi..? Et le conteneur pioche je peux utiliser la combobox de 1 a 12 que j'ai deja sur ma form1? Merci
Whismeril
Messages postés18280Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 mars 2023621 28 mars 2015 à 07:53
Bonjour, t'aider oui, tout faire pour toi non car ça ne t'aidera pas à apprendre.
Déclarer un tableau c'est le B A BA de tout langage, donc si tu ne sais pas faire c'est que tu n'as pas les bases.
Si tu n'as pas les bases, ça n'est pas le moment de faire une IHM avec des combobox et des labels.
Modifié par KX le 27/03/2015 à 23:43
Alternative :
Tu tires un nombres entre 0 et 11, tu permutes la case 11 avec le résultat.
Tu tires un nombres entre 0 et 10, tu permutes la case 10 avec le résultat.
...
Tu tires un nombres entre 0 et 1, tu permutes la case 1 avec le résultat.
Il y aura toujours 11 itérations, aucune consommation en mémoire, et c'est mathématiquement équiprobable.
28 mars 2015 à 07:50
28 mars 2015 à 06:14
J'apprends , donc la deuxieme solution me va !
Par contre niveau code ca donne quoi..? Et le conteneur pioche je peux utiliser la combobox de 1 a 12 que j'ai deja sur ma form1? Merci
28 mars 2015 à 06:17
28 mars 2015 à 06:22
A remplir avec 12 chiffres differents je suis obligé pour les afficher dans les label apres.