Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1213 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Tri de tableau semi-aleatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tri de tableau semi-aleatoire

n°1372548
Tounet
I love apples
Posté le 22-05-2006 à 20:58:22  profilanswer
 

Je cherche, je ne sais pas si ca existe en fait (meme comme je ne voudrais pas reinventer la roue :o ), un algo qui trierait un tableau en ayant entré au prealablement un entier. En clair ca serait un tri random sauf que moi je precise le random :D
Donc avec un meme entier et un meme tableau, on retrouve le meme tableau trié au final. Je ne sais pas si vous m'avez compris ?
Je cherche pas un simple decalage a droite ou a gauche, sinon je l'aurais fais moi meme. :)
 
Voila, si jamais vous avez deja vu ca, ou si vous avez une idée de comment s'y prendre.


Message édité par Tounet le 22-05-2006 à 20:59:09

---------------
Les hommes n'acceptent le changement que dans la nécessité et ils ne voient la nécessité que dans la crise.
mood
Publicité
Posté le 22-05-2006 à 20:58:22  profilanswer
 

n°1372565
_darkalt3_
Proctopathe
Posté le 22-05-2006 à 21:19:08  profilanswer
 

j'ai rien compris [:moule_bite]

n°1372603
Tounet
I love apples
Posté le 22-05-2006 à 21:54:39  profilanswer
 

Imagine un appel de fonction du genre rand_tab(entier,tableau) qui te renvois un tableau classé differement, mais qui te renvoir tjrs le meme tableau si tes parametres de depart sont les memes. Je suis clair la ?


---------------
Les hommes n'acceptent le changement que dans la nécessité et ils ne voient la nécessité que dans la crise.
n°1372621
0x90
Posté le 22-05-2006 à 22:06:29  profilanswer
 

bha tu utilise l'entier donné en argument dans srand() comme graine, puis tu fais ton algo de mélange à coup de rand() ...


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1372829
Giz
Posté le 23-05-2006 à 09:56:26  profilanswer
 

ca revient à calculer le hashcode de chacune des données du tableau et avec ça tu trouveras l'indice du tableau où les ranger. Tu gères les collisions avec l'algorithme de "linear probing".

n°1372875
Tounet
I love apples
Posté le 23-05-2006 à 10:43:32  profilanswer
 

J'ai trouve un truc pas mal qui marche plutot bien.
Le seul truc c'est que le tableau ne doit pas etre plus grand que le RAND_MAX. Mais bon de toute facon je ne comptais pas faire ca avec des tableaux immenses.
 

Code :
  1. srand(x)
  2. for (i = 0; i < nb_car - 1; i++)
  3. {
  4.      j = i + rand() / (RAND_MAX / (nb_car - i) + 1);
  5.      tmp = tab[j];
  6.      tab[j] = tab[i];
  7.      tab[i] = tmp;
  8. }


Message édité par Tounet le 23-05-2006 à 10:45:10

---------------
Les hommes n'acceptent le changement que dans la nécessité et ils ne voient la nécessité que dans la crise.
n°1372905
Giz
Posté le 23-05-2006 à 10:53:31  profilanswer
 

en utilisant du rand(), j'ai du mal à voir comment tu peux "trier" un même tableau 2 fois de suite de la même façon  :heink:

n°1372917
0x90
Posté le 23-05-2006 à 10:56:58  profilanswer
 
n°1372963
Tounet
I love apples
Posté le 23-05-2006 à 11:25:30  profilanswer
 

Giz a écrit :

en utilisant du rand(), j'ai du mal à voir comment tu peux "trier" un même tableau 2 fois de suite de la même façon  :heink:


 
T'as rate la 1ere ligne du programme :o


---------------
Les hommes n'acceptent le changement que dans la nécessité et ils ne voient la nécessité que dans la crise.
n°1373020
Giz
Posté le 23-05-2006 à 12:01:04  profilanswer
 

avec srand() tu réinitialises ta suite aléatoire...donc ton rand() ne générera jamais la même suite de chiffre dans ta boucle. Avec rand() tout seul OK. Mais la suite changera au prochain rédémarrage de ton PC. Franchement avec du rand(), je vois pas comment ça peut marcher. Sinon le hashCode, à quoi ça sert ? :sarcastic:


Message édité par Giz le 23-05-2006 à 12:01:48
mood
Publicité
Posté le 23-05-2006 à 12:01:04  profilanswer
 

n°1373032
Tounet
I love apples
Posté le 23-05-2006 à 12:09:08  profilanswer
 

T'as pas bien compris l'utilisation de srand. :o
Srand initialise une suite aleatoire a l'aide d'un entier, mais si tu passes tjrs le meme entier a srand, ta suite aleatoire reste la meme derriere.
C'est d'ailleurs pour ca quand on veut generer qq chose qui se rapproche d'un vrai nombre aleatoire, on utilise un srand(time(NULL)).
 
Ne t'inquiete pas j'ai teste et ca marche tres bien. :)


---------------
Les hommes n'acceptent le changement que dans la nécessité et ils ne voient la nécessité que dans la crise.
n°1373070
Giz
Posté le 23-05-2006 à 12:33:42  profilanswer
 

ha bon...ma foi. Et ça marche même quand tu redémarre le PC ? (tu auras la même suite à chaque fois) :??:

n°1373071
0x90
Posté le 23-05-2006 à 12:34:11  profilanswer
 

OUI, lis le man ptin :o


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1373077
Giz
Posté le 23-05-2006 à 12:38:09  profilanswer
 

merde alors, je savais pas ça.
 
EDIT : pourquoi alors on n'utiliserai pas cette méthode pour générer un hashCode ?


Message édité par Giz le 23-05-2006 à 12:46:13
n°1373089
Tounet
I love apples
Posté le 23-05-2006 à 12:59:22  profilanswer
 

un hashcode, c'est a dire ? genre du md5 ou du SHA ?


---------------
Les hommes n'acceptent le changement que dans la nécessité et ils ne voient la nécessité que dans la crise.
n°1373126
Giz
Posté le 23-05-2006 à 13:41:50  profilanswer
 

Ouai non en fait ça changera rien du tout.


Message édité par Giz le 23-05-2006 à 13:49:12

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Tri de tableau semi-aleatoire

 

Sujets relatifs
Effectuer une action sur la selection d'une ligne d'un tableauCrash aléatoire de gtk
[Caml]Tableautableau défini par [][x] ... [résolu]
Allocation dynamique d'un tableauProbleme de session et tableau
CSS pour configurer l'impression d'un tableau...Mise à jour du contenu d'un tableau JTable
Pointeur et tableautrier un tableau
Plus de sujets relatifs à : Tri de tableau semi-aleatoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR