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
Pages : 1
#1 12-09-2025 17:08:12
- renéb
- Membre
- Inscription : 15-01-2023
- Messages : 61
15 boules à classer version python.
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.
Hors ligne
Pages : 1








