Cherche Algorithme

Cherche Algorithme - Algo - Programmation

Marsh Posté le 15-03-2007 à 18:57:02    

Bonjours ;
Je travaille actuellement sur un sujet qui me tient à coeur pour un but curatif voilà j'ai une combinaison de 06 chiffres qui est la somme d'un nombre dont l'interval est de 1 jusqu'au 24 je m'explique :
l'utilisateur saisira un nombre exemple 7 je construit une combinaison de 06 chiffres cad :
211111
221110
222100
311110
321100
322000
411100
421000
430000
511000
520000
610000
700000
de façon que chaque ligne de chiffre a la somme de 7
j'ai essayer de construire un algo corespondant mais sans résultats  
aider moi svp  
Yacine1

Reply

Marsh Posté le 15-03-2007 à 18:57:02   

Reply

Marsh Posté le 15-03-2007 à 19:21:31    

cette discussion ici : http://www.developpez.net/forums/s [...] p?t=222133 peut sans doute t'intéresser même si ce n'est pas exactement le même problème.
Je pense que tu dois plutôt partir étant donné les conditions de cette façon
7000000
6100000
5200000
5110000
.............

Reply

Marsh Posté le 15-03-2007 à 19:38:15    

Avec des valeurs aussi faibles, tu as aussi vite fait de faire une boucle qui tourne un millions de fois et qui les verifie tous, non? :D

Reply

Marsh Posté le 15-03-2007 à 21:16:03    

Ace17 a écrit :

Avec des valeurs aussi faibles, tu as aussi vite fait de faire une boucle qui tourne un millions de fois et qui les verifie tous, non? :D


super comme algo...
généralise un peu


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 15-03-2007 à 21:46:18    

C'etait juste une suggestion. Mais puisqu'on me le demande :)
 

Code :
  1. #define N 6
  2. #define M 7
  3. int tab[M];
  4. void try_number(int rem, int idx)
  5. {
  6.    if(rem < 0)
  7.       return;
  8.    if(idx == N)
  9.    {
  10.       if(rem == 0)
  11.          save();
  12.       return;
  13.    }
  14.    for(int i=0;i < M;++i)
  15.    {
  16.       tab[idx] = i;
  17.       try_number(rem-i, idx+1);
  18.    }
  19. }


Message édité par Ace17 le 15-03-2007 à 21:46:41
Reply

Marsh Posté le 15-03-2007 à 22:01:20    

Tu pars de la gauche, et dans le sens indiqué très justement par Trap D, et, pour chaque valeur entière "décomposable" (càd > à 1), et "pas trop longue" (càd dont la quantité de chiffres ne dépasse pas la longueur totale de ton mot), tu rajoutes une ligne avec la décomposition la plus élémentaire (càd le même chiffre que la ligne du dessus - 1).
Tu recommences tant que ta dernière ligne possède des chiffres non élémentaires (càd > à 1) et que la longueur max du mot n'est pas dépassée.
 
Petite question : comment on fait quand le chiffre de départ est supérieur à 9 ?

Reply

Marsh Posté le 15-03-2007 à 22:05:41    

on change de base?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 15-03-2007 à 22:26:47    

Vivi, lol, enfin ma question était plus bête que ça, elle concernait plutôt l'affichage du résultat. M'enfin c'est pas bien important.

Reply

Marsh Posté le 17-03-2007 à 16:43:09    

Bonjours;
En ce qui concerne le chiffre de départ le 9 est le Max

Reply

Marsh Posté le 29-03-2007 à 13:03:30    

oscar43 a écrit :

Bonjours ;
Je travaille actuellement sur un sujet qui me tient à coeur pour un but curatif voilà j'ai une combinaison de 06 chiffres qui est la somme d'un nombre dont l'interval est de 1 jusqu'au 24 je m'explique :
l'utilisateur saisira un nombre exemple 7 je construit une combinaison de 06 chiffres cad :
211111
221110
222100
311110
321100
322000
411100
421000
430000
511000
520000
610000
700000
de façon que chaque ligne de chiffre a la somme de 7
j'ai essayer de construire un algo corespondant mais sans résultats  
aider moi svp  
Yacine1


 
L'algorithme récursif est simple, si je me souviens bien. J'ai donné l'algo itératif ici : http://forum.hardware.fr/hfr/Progr [...] m#t1481819


Message édité par boulgakov le 29-03-2007 à 13:04:37
Reply

Marsh Posté le 29-03-2007 à 13:03:30   

Reply

Marsh Posté le 29-03-2007 à 14:11:38    

Je vois par exemple :
 
221111
 
Mais 211112 n'est pas valide ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed