Bonjour à tous,

Je fréquente ce forum depuis bien longtemps et y ai appris beaucoup de choses, merci à la communauté.
Mais je suis aujourd'hui confronté à un problème dont je n'ai pas trouvé encore la réponse (peut-être ai-je fait les mauvaises recherches ?), en tout cas, j'espère que quelqu'un pourra m'aider

Voila,
J'aimerai dans le cadre de la création d'un projet personnel, créer une fonction permettant de lister toutes les combinaisons à partir des nombres allant de 1 à 16.
Jusque là, c'est plutôt simple, mais ça va un peu plus loin :
- La combinaison doit être au minimum de 3 nombres;
- La combinaison doit être au maximum de 16 nombres;
- On ne peut pas avoir deux fois le même nombre.

Pour corser un peu plus la chose, j'ai un schéma à respecter : celui d'un tableau 4x4 comme celui-ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
1  2  3  4
5  6  7  8
9  10 11 12
13 14 15 16
J'ai établi la règle suivante pour les combinaisons possibles :
1: 2,5,6
2: 1,3,5,6,7
3: 2,4,6,7,8
4: 3,7,8
5: 1,2,6,9,10
6: 1,2,3,5,7,9,10,11
7: 2,3,4,6,8,10,11,12
8: 3,4,7,11,12
9: 5,6,10,13,14
10: 5,6,7,9,11,13,14,15
11: 6,7,8,10,12,14,15,16
12: 7,8,11,15,16
13: 9,10,14
14: 9,10,11,13,15
15: 10,11,12,14,16
16: 11,12,15
Je m'explique :
à partir de la case 1, je peut aller à la case 2, 5 ou 6;
à partir de la case 2, je peut aller à la case 1,3,5,6 ou 7;
Etc...

J'ai également calculé qu'il y avait 1344 combinaisons possibles avec les règles établies (j'ai un GROS doute, donc merci de me le confirmer si possible).

En clair, ce que j'aimerai c'est une fonction qui me sortira au pire la liste des combinaisons possibles, au mieux une fonction qui me sortira les combinaisons possibles à partir de la case que j'aurai choisie.

J'espère que je ne vous en demande pas trop et que cela est réalisable. Je ne sais pas s'il existe déjà une fonction pour cela, j'ai cherché sans vraiment trouver ce que je cherchai.

J'aimerai quelques pistes et des explications.

Je vous ai fourni toutes les données nécessaires, en sachant que je ne sais pas si le PHP est le mieux adapté pour ce que je voudrait faire.

J'attends avec impatience une réponse
D'avance, merci !