[Résolu] Calcul de combinaisons sans répétition

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
dament
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 28 juil. 2018 09:20

[Résolu] Calcul de combinaisons sans répétition

Message par dament »

Bonjour a tous.

Tout d'abord, merci a tous, vous étes trop forts.... :bravo:

J'ai trouvé un post qui date un peu sur ce forum.

viewtopic.php?f=4&t=22491
La modération vous a écrit: lien inactif car incomplet. il s'agit de ce lien : Calcul de permutations sans répétition

Avec un fichier "permutations.ods"

J'ai téléchargé la pièce jointe et j'ai essayé de la modifier, afin de la modifier pour ressortir une permutation sans répétition de 10 numéros, avec des grilles de 6 (type ancien loto).
Je voudrais lister toutes les combinaisons possible (462) ..

Je n'ai pas réussi a modifier votre feuille (remplacer les lettres par des nombres). J'ai listé les lignes cachées, mais je ne comprend pas toutes les commandes....
Pouvez vous m'aider ?
Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par dament le 21 nov. 2019 21:52, modifié 3 fois.
win7 sP1, open office 4.1.0 (obligation de version)
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5752
Inscription : 02 janv. 2009 23:56

Re: Calcul de permutations sans répétition

Message par Jean-Louis Cadeillan »

Bonsoir,
Je ne suis pas sûr d'avoir bien compris ta demande (je ne joue pas au loto...). Par contre je suis sûr qu'il y a prescription quant à ce genre de machin que j'ai pu commettre :marto:
Ci-joint un patch pour afficher toutes les permutations d'un maximum de 6 nombres...
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Avatar de l’utilisateur
Loopingss
InconditiOOnnel
InconditiOOnnel
Messages : 783
Inscription : 17 déc. 2008 01:50

Re: Calcul de permutations sans répétition

Message par Loopingss »

Bonsoir Dament.
Je pense que vous comprendrez mieux ce qui a été fait dans le fichier que vous nous avez joint si vous affichez les lignes maquées de la feuille n et les colonnes masquées de la feuille p.
Ensuite regardez "Insertion/ Plage ou expression nommée" afin de comprendre les formules utilisant ces plages nommées, notamment en feuille p.
Je vous joint le fichier d'origine avec les lignes et colonnes masquées, démasquées …
COOordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
dament
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 28 juil. 2018 09:20

Re: Calcul de permutations sans répétition

Message par dament »

Bonjour,

Merci pour vos réponses... Je ne comprends pas toutes les formules...
Est il possible de monter au delà de 6 numéros (faire par exemple 10 lettres A B C D E F G H I J , et sortir toutes les possibilité de combinaison de grilles a 6 numéros....

ABCDEF
ABCDEG
ABCDEH
etc

ou le tableur n'est il pas adapté a ce genre de manipulation ?
dans ce cas (6 parmi 10 ) il y a 210 combinaisons différentes possible....

En tout cas merci pour votre aide...
cdl
win7 sP1, open office 4.1.0 (obligation de version)
dament
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 28 juil. 2018 09:20

Re: Calcul de permutations sans répétition

Message par dament »

J'ai trouvé une solution a mon problème, merci pour votre aide...
win7 sP1, open office 4.1.0 (obligation de version)
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5752
Inscription : 02 janv. 2009 23:56

Re: Liste de combinaisons sans répétition

Message par Jean-Louis Cadeillan »

Bonsoir,
dament a écrit :J'ai trouvé une solution à mon problème
C'est bien, si tu peux la partager, ce serait mieux. D'autres utilisateurs pourraient être intéressés !
D'autre part, ce serait bien que tu corriges ton premier titre, car ce que tu cherches, ce sont des combinaisons et non des permutations...

Ci-joint une solution commentée (commentaires de cellule). Elle est basée sur l'utilisation de nombres binaires successifs, chaque 1 ou 0 étant l'indication que l'on retient ou non le mot correspondant, dans la liste initiale des mots. Le mot est un ou plusieurs symboles (chiffres ou lettres). La liste des mots à choisir se trouve en K1:T1 (donc 10 mots).
Le nombre binaire doit donc avoir 10 chiffres, or DECBIN() ne fonctionne que jusqu'à 9 chiffres (512). J'ai donc obtenu les autres par substitution du premier 0 en 1. Pour explorer toutes les combinaisons, il faut aller jusqu'à 2^n -1 (ici, n=10). On doit pouvoir, par cet algorithme aller plus loin que 10 mots sans trop faire souffrir le tableur, mais il faudra explorer d'autres voies pour allonger la liste des nombres binaires...
Les tirages de 6 mots parmi les 10 sont donnés en colonne I (caractères rouges sur fond bleu). Ce sont ceux dont le nombre binaire correspondant comporte six fois le chiffre 1.

J'ai décomposé le problème en de nombreuses colonnes (pas de formule matricielle) : il y aurait moyen de faire plus compact... mais moins compréhensible.
Le plus dur a été de séparer les mots avec des virgules... de manière propre (une seul virgule entre mots, pas de virgule au début ou à la fin). J'ai fait à cette fin une formule nommée (Liste) pour m'aider.

Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
dament
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 28 juil. 2018 09:20

Re: Calcul de combinaisons sans répétition

Message par dament »

titre corrigé

Merci pour ton dévouement à nos problèmes...

En fait la solution, c'est d'avoir trouvé un site qui fait la manip... ce n'est pas très glorieux...
Faire ce genre de feuille n'est pas à ma porté...

En fait, nous sommes vite submergé par la quantité de données dans ce genre de calculs...cela génère très une très grande quantité de grilles...

Je suis stupéfaits par ta maîtrise du tableur !... merci...

cdl...
win7 sP1, open office 4.1.0 (obligation de version)
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5752
Inscription : 02 janv. 2009 23:56

Re: [Résolu] Calcul de combinaisons sans répétition

Message par Jean-Louis Cadeillan »

Bonsoir,
À toutes fins utiles, une version plus générale de tous les tirages (combinaisons) possibles de p éléments parmi n, avec n<=15 et p entre 1 et n.
Je ne suis plus passé par DECBIN(), mais par une formule :

Code : Tout sélectionner

=SI(MOD(LIGNE();2^(15-COLONNE(A1)+1))<2^(15-COLONNE(A1));0;1)
qui recopiée sur 15 colonnes et 32767 lignes donne les 2^15 -1 nombres sous forme binaire avec 1 bit par cellule.
Les mots de la liste se renseignent en T1:AH1, mais en les renseignant de droite à gauche : si la liste ne comporte que 12 mots, par exemple, on laissera T1:V1 vides. La taille du tirage (p) se fait par liste déroulante en P1.
Les combinaisons apparaissent en colonne AK.
Chaque mot peut être composé d'un nombre quelconque de caractères alphanumériques (hormis la virgule, qui me sert de séparateur). Des commentaires sont attachés aux cellules d'entête.
On est à la limite de ce que permet l'algorithmique cellulaire (le fichier fait presque 5 Mo !), du moins avec cet algorithme...
Il doit pouvoir fonctionner aussi bien sous AOO que sous LibO.
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1