Trie aleatoire tableau c#
Fermé
david
-
19 nov. 2011 à 14:56
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 19 nov. 2011 à 15:29
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 19 nov. 2011 à 15:29
A voir également:
- Trie aleatoire tableau c#
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Trier tableau excel - Guide
- Tableau word - Guide
- Tableau de combinaison loto 5/90 - Forum Excel
2 réponses
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
Modifié par nicocorico le 19/11/2011 à 15:31
Modifié par nicocorico le 19/11/2011 à 15:31
Ou une autre solution, qui évite d'avoir à supprimer des cases :
- Ton tableau est rempli avec les valeurs dans l'ordre;
- Tu récupères un nombre aléatoire avec random ou Gettickcount (un compteur qui défile en permanence en millisecondes, "imprévisible");
Il faut faire un modulo pour que le nombre n'excède pas 9;
- En te servant de cette valeur comme index, tu inverses les valeurs dans le tableau entre cet emplacement et le dernier;
Par exemple : on trouve 7 en nombre aléatoire; on inverse les valeurs de Tab[07] et Tab[10]; si on trouve 39, on fait 39 modulo 9, ça donne 3, donc on inverse Tab[3] et Tab [10];
Je considère ici que le tableau commence à l'index 01.
En répétant cette méthode une centaines de fois, l'aléa me semble garanti... N'hésite pas si ça te semble obscur, c'est un peu dur à expliquer !
- Ton tableau est rempli avec les valeurs dans l'ordre;
- Tu récupères un nombre aléatoire avec random ou Gettickcount (un compteur qui défile en permanence en millisecondes, "imprévisible");
Il faut faire un modulo pour que le nombre n'excède pas 9;
- En te servant de cette valeur comme index, tu inverses les valeurs dans le tableau entre cet emplacement et le dernier;
Par exemple : on trouve 7 en nombre aléatoire; on inverse les valeurs de Tab[07] et Tab[10]; si on trouve 39, on fait 39 modulo 9, ça donne 3, donc on inverse Tab[3] et Tab [10];
Je considère ici que le tableau commence à l'index 01.
En répétant cette méthode une centaines de fois, l'aléa me semble garanti... N'hésite pas si ça te semble obscur, c'est un peu dur à expliquer !
Le chêne aussi était un gland, avant d'être un chêne
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
19 nov. 2011 à 15:14
19 nov. 2011 à 15:14
Je ne connais pas C# mais vu que ta question est plus théorique qu'autre chose j'y réponds quand même :
Ce que tu devrais faire c'est tirer un nombre aléatoire entre 1 et la taille de ton tableau, récupérer la valeur qui est à cette position et la mettre à la première position de ton tableau résultat (j'ai 9 cases, je tire un nombre entre 1 et 9, par exemple 3, je récupère la 3è valeur de mon tableau d'origine pour le mettre à la première case du tableau résultat)
Ensuite on recommence, mais avec un tableau qui a une case en moins, vu qu'entre temps tu auras supprimé la case que tu as récupéré précédemment.
Ici, quand on s'y connait un peu on voit tout de suite que l'utilisation d'une liste pour contenir les valeurs du tableau d'origine est bien plus efficace qu'un tableau lorsqu'il s'agit de supprimer une "case" n'importe où dans le tableau...
Ce que tu devrais faire c'est tirer un nombre aléatoire entre 1 et la taille de ton tableau, récupérer la valeur qui est à cette position et la mettre à la première position de ton tableau résultat (j'ai 9 cases, je tire un nombre entre 1 et 9, par exemple 3, je récupère la 3è valeur de mon tableau d'origine pour le mettre à la première case du tableau résultat)
Ensuite on recommence, mais avec un tableau qui a une case en moins, vu qu'entre temps tu auras supprimé la case que tu as récupéré précédemment.
Ici, quand on s'y connait un peu on voit tout de suite que l'utilisation d'une liste pour contenir les valeurs du tableau d'origine est bien plus efficace qu'un tableau lorsqu'il s'agit de supprimer une "case" n'importe où dans le tableau...