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

  FORUM HardWare.fr
  Programmation
  PHP

  afficher toutes les combinaisons possibles de X élément

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

afficher toutes les combinaisons possibles de X élément

n°1709936
haikai
Posté le 30-03-2008 à 19:49:38  profilanswer
 

Bonjour,
 
J'ai besoin de l'aide de costaud en PHP car je suis en train de galérer sur la création d'un script me permettant d'afficher toutes les combinaisons possibles de X éléments.
 
Par exemple, je voudrais afficher avec les lettres A, B, C, D les combinaisons suivantes :
 
A
B
C
D
AB
AC
AD
BC
BD
CD
ABC
ABD
ACD
BCD
ABCD
 
 
Je voudrais aussi pouvoir afficher l'ensemble des combinaisons pour 6 lettres A, B, C, D, E, F
 
J'avais penser à l'algorithme suivant pour faire mon script mais je galère et je ne sais pas si c'est la bonne solution :
 
- on compte de 0 à (2^n)-1
- on convertit chacun de ces nombres en représentation binaire sur n chiffres
- chaque représentation binaire définit un sous-ensemble (0 signifie qu'on ne prend pas l'élément correspondant, 1 qu'on le prend)
 
Exemple avec ABC :
 
on compte de 0 à 7 :
 
0 -> 000 -> {}
1 -> 001 -> {C}
2 -> 010 -> {B}
3 -> 011 -> {B,C}
4 -> 100 -> {A}
5 -> 101 -> {A,C}
6 -> 110 -> {A,B}
7 -> 111 -> {A,B,C}
 
 
Ainsi pour afficher toutes les combinaisons pour A, B, C, D, E, F
il faudrait compter de 0 à 63 :
0 -> 000000 -> {}
à
63 -> 111111 -> {A,B,C,D,E,F}
 
 
Le script PHP que je cherche à écrire est extrêment compliquer donc je demande qu'aux costauds en PHP de l'écrire !
Merci
 
++
Laeticia

mood
Publicité
Posté le 30-03-2008 à 19:49:38  profilanswer
 

n°1709950
art_dupond
je suis neuneu... oui oui !!
Posté le 30-03-2008 à 20:13:32  profilanswer
 

tu veux afficher juste ces combinaisons ou toutes les combinaisons ? Si c'est toutes les combinaisons, il faut aussi faire les permuations de chaque "mot".
 
Pour ton algo, tu peux utiliser decbin() (transforme un entier en binaire) :)


---------------
oui oui
n°1709982
haikai
Posté le 30-03-2008 à 21:11:46  profilanswer
 

non juste ces combinaisons

n°1709983
art_dupond
je suis neuneu... oui oui !!
Posté le 30-03-2008 à 21:17:39  profilanswer
 

à quel niveau tu bloques ?


---------------
oui oui
n°1710061
haikai
Posté le 31-03-2008 à 08:05:42  profilanswer
 

je bloque pour faire le script php

n°1710240
olivthill
Posté le 31-03-2008 à 13:14:27  profilanswer
 

Faire une petite fonction récursive. Le pseudo-code serait :

function display_char_recursif(depth, cur_str)
{
   si depth = 6 return
   //
   // Premiere boucle pour afficher les combinaisons du niveau
   for (num_char = num_char0; num_char > max_char; num_char++) {
      // check si caractère déjà présent dans la chaine
      if instr(cur_str, c[num_char]) = 0
         print(cur_str . c[num_char])
   }
   //
   // Seconde boucle pour afficher les combinaisons des niveaux suivants
   for (num_char = 0; num_char > max_char return; num_char++) {
      cur_str = cur_str . c[num_char]
      display_char_recursif(depth + 1, cur_str)
   }
   return
}
display_char_recursif(0, "" )

Je n'ai pas testé, mais ça devrait marcher. Il n'y a plus qu'à mettre des $ devant les noms des variables, mettre des parenthères autour des if, mettre des point virgules, initialiser le tableau c[] de tous les caractères possibles, et débugguer.


Message édité par olivthill le 31-03-2008 à 13:23:13

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

  afficher toutes les combinaisons possibles de X élément

 

Sujets relatifs
Programme pour afficher les sources d'une liste d'urlAjouter un élément avec 2 listes
Afficher le flux webcam sur une page[DELPHI] Afficher des images dans un listview.
passer et afficher un fichier xml à travers phpComment afficher un <? ... ?> dans un echo?
Interroger une BDD selon des critères pour afficher un résultat …Afficher mon bandeau
afficher une image selectionee dans base avec phpGestion de code source à afficher sur une page (insertion code en bdd)
Plus de sujets relatifs à : afficher toutes les combinaisons possibles de X élément


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