Index aleatoire
Fermé
jerome
-
14 avril 2001 à 20:10
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 - 15 avril 2001 à 14:39
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 - 15 avril 2001 à 14:39
1 réponse
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
209
15 avril 2001 à 14:39
15 avril 2001 à 14:39
Pour des tirages aléatoires, j'utilise (en JavaScript) une technique qui consiste à ranger les "n" éléments dans un tableau, chaque tirage consistant à calculer un rang.
rang = Math.floor(Math.random()* nr) avec nr = n au 1.er appel
rang est une valeur comprise entre 0 et (nr-1)
quand un élément est tiré (élément[rang]), onl'échange avec celui de rang (nr-1), et on décréménte nr de 1 pour le tirage suivant.
La table contient donc tous les éléments, nr permet de ne pas sortir 2 fois la même valeur, tant qu'on n'a pas effectué (n) tirages.
Au-delà, on réinitialise (nr = n), les tirages (n) et (n+1) peuvent être identiques, sauf test éliminant ce cas.
Dans ton cas, il faut sauvegarder la table et "nr" (cookies ?).
On peut remarquer que la séquence 0,1,2,3,... est "aléatoire" tant que l'utilisateur ne connaît pas la correspondance avec les objets adressés.
rang = Math.floor(Math.random()* nr) avec nr = n au 1.er appel
rang est une valeur comprise entre 0 et (nr-1)
quand un élément est tiré (élément[rang]), onl'échange avec celui de rang (nr-1), et on décréménte nr de 1 pour le tirage suivant.
La table contient donc tous les éléments, nr permet de ne pas sortir 2 fois la même valeur, tant qu'on n'a pas effectué (n) tirages.
Au-delà, on réinitialise (nr = n), les tirages (n) et (n+1) peuvent être identiques, sauf test éliminant ce cas.
Dans ton cas, il faut sauvegarder la table et "nr" (cookies ?).
On peut remarquer que la séquence 0,1,2,3,... est "aléatoire" tant que l'utilisateur ne connaît pas la correspondance avec les objets adressés.