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).

Répondre

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)?
trente et un moins vingt deux
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.

Retour

Résumé de la discussion (messages les plus récents en premier)

renéb
12-09-2025 17:08:12

Bonjour,

Comme annoncé, voici le programme assurant (en un éclair) le classement de 15 boules parfaitement identiques si ce n'est leurs poids singuliers.
L'énoncé de ce défi se trouve dans la rubrique Enigmes, casse-têtes, curiosités et autres bizarreries.
https://www.bibmath.net/forums/viewtopic.php?id=17989


# usr/bin/env python
#-*- coding: cp1252 -*-
import random
tris=1
for t in range(1):
    A,B,C,D,E=[],[],[],[],[]
    F,G,H,I,J,K=[],[],[],[],[],[]
    sol,L,M,N=[],[],[],[]
    solution=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
    w=0        
    #Chargement de la grille 5X3
    while len(B)<15:
        p=random.randint(1,15)
        if p not in B:            
            B.append(p)        
    #print("B= données aléatoires de 1 à 15",B)
    #Rangement en 3 lignes de 5 poids
    for j in range(0,5):
        C.append(B[j])        
    #print("C",C)
    for j in range(5,10):
        D.append(B[j])        
    #print("D",D)
    for j in range(10,15):
        E.append(B[j])
    ##print("C",C)
    ##print("D",D)
    ##print("E",E)
    ##print()
    #Classement des colones le plus léger en haut au plus lourd en bas.
    for j in range(0,5):    
        F.append(C[j])
        F.append(D[j])
        F.append(E[j])
        J.append(sorted(F))
        F=[]
    #print(J)
    for a in range(0,5):    
        I.append (J[a][0])
        H.append(J[a][1])
        G.append(J[a][2])    
        G.sort()
        H.sort()
        I.sort()
        #*************************************17 TRIS
        #grille triée remplie à la main      
    ##    G =[6,10,12,14,15]
    ##    H =[3,4,8,9,13]
    ##    I =[1,2,5,7,11]
    print()
    print("G",G)
    print("H",H)
    print("I",I)
    print()
    sol.append(I[0])
    sol.append(I[1])
    sol.append(I[2])
    sol.append(H[0])
    sol.append('  ...  ')
    sol.append(H[4])
    sol.append(G[2])
    sol.append(G[3])
    sol.append(G[4])
    print()
    X=sol[0:4]
    del(sol[0:4])
    X.sort()
    #*************************************18 TRIS
    sol.insert(0,X)
    X=[]
    X=sol[2:6]
    del(sol[2:6])
    X.sort()
    #*************************************19 TRIS
    sol.append(X)
    #print(sol)
    Y=[]
    Y.append(I[4])
    Y.append(H[2])
    Y.append(G[0])
    Y.sort()
    #***********************************20 TRIS
    #print("Y",Y)
    I[4]=Y[0]
    H[2]=Y[1]
    G[0]=Y[2]
    ##print("G",G)
    ##print("H",H)
    ##print("I",I)
    X=[]
    X.append(G[0])
    X.append(G[1])
    X.append(H[3])
    X.sort()
    #*************************************21 TRIS
    #print(X)
    sol.insert(2,X)
    #print(sol)
    X=[]
    X.append(I[4])
    X.append(I[3])
    X.append(H[1])
    X.sort()
    #*************************************22 TRIS
    #print(X)
    del(sol[1])
    sol.insert(1,X)
    sol.insert(2,[H[2]])
    #print("sol",sol)
    R=[]
    #print("résultat provisoir à trier:")
    for v in sol:
        R+=v
    #print("R*",R)    
    if R==solution:
        print("OK 22 tris")
        tris+=22
    else:
        Y=[]
        for w in range(2,5):        
            Y.append(R[w])
        Y.sort()
        #*************************************23 TRIS
        del(R[2:5])
        R.insert(2,Y)
        #print("R**",R)
        if R==solution:
            tris+=23
            print("OK 23 tris")
        else:
            Y=[]
            for w in range(8,11):        
                Y.append(R[w])
            Y.sort()
            #*************************************24 TRIS
            del(R[8:11])
            R.insert(8,Y)
            #print("R***",R)
            if R==solution:        
                print("OK 24 tris")
                tris+=24
            else:
                Y=[]
                for w in range(4,7):        
                    Y.append(R[w])
                Y.sort()
                #*************************************25 TRIS
                del(R[4:7])
                R.insert(4,Y)
                #print("R****",R)    
                R[0]=[R[0]]
                R[1]=[R[1]]
                R[3]=[R[3]]
                R[5]=[R[5]]
                R[7]=[R[7]]
                R[8]=[R[8]]
                #print("R*****",R)
                T=[]
                for w in R:
                    T+=w
                R=T
                #print("R******",R)
                if R==solution:
                    print("OK 25 tris")
                    tris+=25                  
                else:
                    Y=[]
                    for w in range(4,7):        
                        Y.append(R[w])
                    Y.sort()
                    #*************************************26 TRIS
                    del(R[4:7])
                    R.insert(4,Y)
                    #print("R*******",R)
                    if R==solution:
                        print("OK 26 tris")
                        tris+=26
                    else:                        
                        Y=[]
                        for w in range(6,9):        
                            Y.append(R[w])
                        Y.sort()
                        #*************************************27 TRIS
                        del(R[6:9])
                        R.insert(6,Y)
                        #print("R********",R)                      
                        R[0:4]=[R[0:4]]
                        R[4:8]=[R[4:8]]
                        R[2]=[R[2]]
                        #print(R)
                        T=[]
                        for w in R:
                            T+=w
                            R=T              
                        #print("R",R)
                        if R==solution:
                            print()
                            print("OK 27 tris")
                            tris+=27
                        else:
                            print("stop erreur")
print(tris)
print(t)
print()
##print("tris/t = ",tris/t)                        
##print()
 

Bonne lecture.

A bientôt.

Pied de page des forums