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).
- Contributions : Récentes | Sans réponse
- Accueil
- » Programmation
- » 15 boules à classer version python.
- » Répondre
Répondre
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.







