Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#26 13-09-2011 23:30:26

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Combinaisons de 12 nombres : triplets

totomm a écrit :

Bonjour,

freddy a écrit :

A propos : cordial ment !

Ce genre de mot d'esprit méchant et totalement injustifié ne devrait pas apparaitre sur ce Forum !
freddy, vous avez sûrement mieux à publier !

A demain, peut-être, Cordialement.

Salut,

amusant de constater comment il faut faire pour te "pousser" à expliquer ...

Quant à mon "A propos", il en va de ton "cordialement" comme du "Comment allez vous " ou "comment vas tu"  : en fait, on se fiche éperdument de la réponse dans 99,9  % des cas.

Pour les 0,1 % restant, la question est sincère et attend une vraie réponse, mais elle est réservée à  nos amis, ceux qu'on aime.

Le "cordialement" systématique, voire automatique, n'a rien de cordial (consulter le sens de ce mot pour comprendre), il se veut la marque d'une éducation qui manque en vérité d'authentique chaleur humaine .

Ta réaction montre que le trait a atteint sa cible : tu as bien compris ce que je dénonçais ... On dirait aujourd'hui : ce que je stigmatisais.

Pour finir, je ne pense pas que tu aies encore gagné tes galons pour être le censeur de notre communauté, donc évite de dire aux modos ce qu'ils doivent faire, ils le savent mieux que quiconque sur ce site.

Bien à toi, mon grand.


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#27 14-09-2011 09:36:59

totomm
Membre
Inscription : 25-08-2011
Messages : 1 093

Re : Combinaisons de 12 nombres : triplets

Bonjour,

@freddy : Mieux vaudrait dire simplement si vous avez compris la méthode d'après le dernier exposé, et publier à votre tour le comment de :

freddy a écrit :

On sait qu'on doit trouver au plus 36 5-grilles

quand au reste, c'est sans doute toujours ce que le modérateur écrivait :

yoshi a écrit :

...trait d'humour freddyesque...

et s'épancher comme cela n'a aucun intérêt.
Cordialement

Hors ligne

#28 14-09-2011 11:22:34

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Combinaisons de 12 nombres : triplets

Salut tomtom,

bien sûr que j'ai compris la méthode, même si ce n'est pas comme cela que je l'aurais expliquée.

Je voulais expliciter l'esprit plus général de la méthode de manière plus formelle, mais les explications fournies devraient suffire au lectorat du site.

Pour le 36 (du Quai des Orfèvres ? ;-) ), je te laisse réfléchir encore un peu.

Dernière modification par freddy (14-09-2011 14:29:31)


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#29 15-09-2011 16:17:30

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 988

Re : Combinaisons de 12 nombres : triplets

RE,


Ça y est, j'en ai terminé (provisoirement) avec
* la revue trimestrielle que je devais établir avec découpe du fichier par 2 pages pour envoi à l'éditeur,
* les voyages à Tours (600 km) où j'ai dû chercher un logement, puis emménager ma dernière, étudiante,
* les voyages au Centre de l'Académie d'origine pour essayer de remuer le CROUS, d'obtenir des documents de sa Fac d'origine,
* Mon mal de dos consécutif aux voyages et à "l'enchaisement" dû à la revue

et j'ai pu me pencher sérieusement cette fois sur la réécriture du prog de totomm sur l'idée de base qui est sienne, sans laquelle je n'aurai rien fait : l'indice de coïncidence décroissant du nombre de triplets pas encore rencontrés...
Le voilà (20 min d'écriture et de débogage) :

#!/usr/bin/env python
# -*- coding: cp1252 -*-

def cree_5combi(ni,nj,nk,nl,nm):
    L=[]
    for i in range(1,ni):
        for j in range(i+1,nj):
            for k in range(j+1,nk):
                for l in range(k+1,nl):
                    for m in range(l+1,nm):                  
                        L.append([i,j,k,l,m])
    return L

def cree_3combi(nk,nl,nm):
    M=[]
    for i in range(1,nk):
        for j in range(i+1,nl):
            for k in range(j+1,nm):
                M.append([i,j,k])
    return M
   
def cree_Indices():
    Idc=[]
    for i in range(0,3):
        for j in range(i+1,4):
            for k in range(j+1,5):
                Idc.append([i,j,k])
    return Idc

def eclate_5combinaison(Idc,T):
    L=[]
    for i in range(10):
        m,n,p=Idc[i]
        L.append([T[m],T[n],T[p]])
    return L


n,p=12,5
ni=n-p+2
nj=n-p+3
nk=n-p+4
nl=n-p+5
nm=n-p+6
# Initialisations
L512=cree_5combi(ni,nj,nk,nl,nm)
n512=len(L512)
L312=cree_3combi(nk,nl,nm)
n312=len(L312)
Indices=cree_Indices()
Vues_3,Vues_5=[],[]
C5=L512[:]  # Crée une copie des 792 combinaisons de 5 parmi 12      
 
# Traitement    
for i in range(10,0,-1):  # maximum décroissant de triplets communs
    for combi in C5:      # Extrait chaque 5combinaison de la liste C5
        # extrait les 10 triplets de 3 parmi 5
        M312=eclate_5combinaison(Indices,combi)
        diff=0
        # Examine chacun des 10 triplets extraits de la 5combi en cours
        for trp in M312:
            # Incrémente le compteur à chaque triplet non déjà stocké
            if trp not in Vues_3:
                diff+=1      
        if diff==i:       # Si le compteur est égal au maximum accepté
            # Passe en revue chaque triplet extrait plus haut
            for j in range(10):
                # Si le triplet n'a pas déjà été enregistré
                if M312[j] not in Vues_3:
                    # Stockage du triplet
                    Vues_3.append(M312[j])
            # Stockage de la 5combinaison
            Vues_5.append(combi)
            # suppression de la 5combinaison de la liste globale
            del C5[C5.index(combi)]
print len(Vues_5)

Tout va bien alors ?
Non, pas complètement :
* Il me semble me souvenir que le prog de totomm est plus rapide
* Je tombe sur 33 (!) 5combinaisons : je les ai testées en les éclatant : ça colle, j'ai bien 220 triplets différents de 3 nombres pris sur 12...
Donc, il me reste encore à chercher pourquoi j'ai une 5combinaison de trop...
C'est quand même bizarre, : il n'y a aucune raison logique pour que mon prog donne combinaison de trop et c'est pourtant le cas..
Je vais dans un premier temps chercher laquelle par comparaison de mes résultats avec ceux de totomm.
Ensuite, nanti de ce sésame, j'espère que je trouverai pourquoi.

Si quelqu'un avait l'illumination avant moi, qu'il ne se gêne pas pour pointer la cause du problème : je n'en serais pas choqué, n'ayant pas la science infuse... ;-)

@+

[EDIT]
Petit détail...
Pourquoi écrire
C5=L512[:] et non simplement C5=L512
A cause d'une particularité Pythonesque, qu'on en juge :

>>> A=[1,2,3]
>>> B=A
>>> B[0]=0
>>> A
[0,2,3]

Surprenant, hein ?
C'est que B=A crée non pas un 2e objet, mais donne un 2e nom au même objet...
Mais :

>>> A=[1,2,3]
>>> B=A[:]
>>> B[0]=8
>>> A
[1,2,3]
>>> B
[8,2,3]

Etait-il bien utile de créer un 2e objet_liste ?
Oui, par économie de pensée parce qu'habitude qui peut éviter des surprises dans d'autres prog...
Non, ici, je ne réutilise pas ultérieurement ma liste de 792  5combinaisons


Arx Tarpeia Capitoli proxima...

Hors ligne

#30 16-09-2011 11:35:59

totomm
Membre
Inscription : 25-08-2011
Messages : 1 093

Re : Combinaisons de 12 nombres : triplets

Bonjour,

@ yoshi : On obtient d'abord 33, mais certains des 12 nombres apparaissent trop souvent dans le premier choix des 5-combinaisons (au nombre de 12 pour 120 3-combinaisons).
J'ai donc limité, dans le premier choix, à 30 le nombre d'apparition de chacun des 12 nombres : ainsi il n'y a plus que 11   5-combinaisons choisies (pour 110 3-combinaisons)
et en deuxième choix se sélectionne une seule 5-combinaison n'apportant que 9   3-combinaisons nouvelles, mais le nombre d'apparitions de chacun des 12 nombres est suffisamment "homogène" pour obtenir 32 en final sans autre conditionnement que celui du premier choix.

Très subtil en effet, et je ne vois pas comment, après ce genre d'exercice, freddy peut "dédaigner" encore l'utilisation de l'ordinateur...(sa position de principe n'est pas dénuée de fondement, mais est trop rigide, malgré ses connaissances de niveau "supérieur" !)

Cordialement

Hors ligne

#31 16-09-2011 11:47:59

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 988

Re : Combinaisons de 12 nombres : triplets

Salut,

Voilà qui me rassure : mon interprétation personnelle de ta partition ne comportait donc pas de fausse note...
Tu as "juste" rajouté une petite subtilité.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt seize moins vingt quatre
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums