Seulement pour les bons...

toutankamons Messages postés 2 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 5 mai 2004 - 4 mai 2004 à 17:37
toutankamons Messages postés 2 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 5 mai 2004 - 5 mai 2004 à 11:57
Bonjour je suis nouveau et j'espere bien trouver l aide necessaire ici pour mener a bien mon projet de fin d'année.
Je ne souhaite pas d algorythme tout pondu mais seulement une piste.
Je vous remerci d'avance.

Voila le probleme:

j'ai au depart un tableau de N entiers dans l'ordre.
Par exemple 1,2,3,4.
Je voudrai par le biais d'une unique fonction qui renverrai un bool, pouvoir changer ce tableau de maniere a avoir une autre combinaison de chiffres.
par exemple j applique la fonction a mon premier tableau et j obtiens :
1,2,4,3
j applique cette meme fonction a ce deuxieme tableau j obtiens:
1,3,2,4

jusqu'a ce qu'il n y est plus de possibilité(autrement dit n!)
( return false).

Il me parait judicieux donc d inserer une variable dans la classe qui permettrai de savoir a quelle combinaison nous en sommes.

Apres je n'ai vraiment aucune idée du squelette de la fonction.

J'espere que vous aurez plus d'inspirations que moi. :)

++

4 réponses

hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
4 mai 2004 à 18:12
j'aurai fait un truc du genre :

pour générer toutes les possibilités, tu fais une boucle qui choisit :
- pour le premier chiffre, toutes les possibilités dans l'intervalle
- pour le deuxieme chiffre, toutes les possibilités dans l'intervalle privé du premier chiffre
- pour le 3ieme chiffre, toutes les possibilités dans l'intervalle privés des deux premiers chiffres
et ainsi de suite
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
5 mai 2004 à 04:19
[C++]

Cette fonction existe déjà...

#include 
#include 
#include 
using namespace std;

int main() {
  int i[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
  
  int c = 0;
  do  {
      cout << ++c << '=';
      copy( i, i + 8, ostream_iterator( cout, ":" ) );
      cout << endl;
  } while( next_permutation( i, i + 8 ) );
}


// Ma participation à la saturation du net:
// http://hylvenir.free.fr
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
5 mai 2004 à 04:22
Evidement, c'est tout pondu... tu as l'algo complet dans l'include
pour te mettre sur la piste de l'algo.

Ma participation à la saturation du net:
http://hylvenir.free.fr
0
toutankamons Messages postés 2 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 5 mai 2004
5 mai 2004 à 11:57
Merci bcp j'en esperait pas tant :)

Visual basic master programmer error!
0
Rejoignez-nous