Qu'est-ce qu'un accès par faux pointeur ?

geekat Messages postés 228 Date d'inscription   Statut Membre Dernière intervention   -  
geekat Messages postés 228 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,
appelé aussi SWAP ou Shuffle.
J'ai cherché sur internet et je ne trouve pas de résultat. Pourtant ces mots ont été prononcé par mon prof.
C'est une méthode qui permet de randomiser des vecteurs aléatoirement en les parcourant une et une seule fois.
Exemple :
vect contient :
- indices : 0 1 2 3 4 5 ............. 149
- valeurs : 5 4 26 ..............
La méthode :
Pour initialiser les valeurs dans vect aléatoirement, on fait ceci :
on met 5 dans la case n°0 et on met 0 dans la case n°5
on met 4 dans la case n°1 et on met 1 dans la case n°4
....
C'est ce que j'ai compris.
Après le souci c'est que j'ai des valeurs doubles, dans ce cas comment faire l'échange ?

Merci
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Peu importe le type de données, on déplace les valeurs d'une case à une autre sans regarder ce qu'elles sont.

Algorithme :

n = taille des données

tant que n > 1
k = nombre aléatoire entre 1 et n
permuter les cases k et n
n = n-1
fin
1
geekat Messages postés 228 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour té réponse.
k et n représentent des indices ?
comment permuter k et n ? k=n et n=k ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Il ne faut pas permuter les indices, mais les cases qui se trouvent à ces indices.

L'implémentation dépendra de ton langage de programmation mais ce sera quelque chose comme ceci :

temp = data[k]
data[k] = data[n]
data[n] = temp
0
geekat Messages postés 228 Date d'inscription   Statut Membre Dernière intervention  
 
Ah d'accord merciiii!
J'ai une autre question : je dois obtenir des nombres aléatoires, le souci c'est que je ne dois pas obtenir le même nombre 2 fois. Comment faire en sorte d'avoir une liste de nombre qui n'ont aucune occurrence .
0