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

Fermé
geekat Messages postés 228 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017 - 23 janv. 2016 à 20:56
geekat Messages postés 228 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017 - 23 janv. 2016 à 22:03
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

1 réponse

KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 3 005
23 janv. 2016 à 21:17
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 vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017
23 janv. 2016 à 21:39
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 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 3 005
23 janv. 2016 à 21:49
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 vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017
23 janv. 2016 à 22:03
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