Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 23-05-2022 12:07:31
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 101
[Python] Script de résolution de l'énigme Zoé, Paul et Marc
Bonjour,
maxi=0
for z in range(10,100):
p,m=0,0
Z=[int(x) for x in str(z)]
for x in Z:
p+=x**2
P=[int(x)for x in str(p)]
for x in P:
m+=x**2
if m>maxi:
maxi=m
Zoe=z
print("Le maxi de Marc est",str(maxi)+",","dès que Zoé choisit le nombre",Zoe)]
Sortie :
Le maxi de Marc est 145, dès que Zoé choisit le nombre 58
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#2 23-05-2022 13:00:39
- Jericho
- Membre
- Inscription : 08-09-2021
- Messages : 27
Re : [Python] Script de résolution de l'énigme Zoé, Paul et Marc
Oui sauf qu'il y a trois solutions :
Le maxi de Marc est 145, dès que Zoé choisit le nombre 77
Le maxi de Marc est 145, dès que Zoé choisit le nombre 85
Hors ligne
#3 23-05-2022 13:16:43
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 101
Re : [Python] Script de résolution de l'énigme Zoé, Paul et Marc
Re,
Oui, c'est bien pourquoi j'avais écrit "dès que"...
C'était pour la première apparition de ce maxi.
@+
[EDIT]
Script modifié pour obtenir tous les nombres à 2 chiffres de Zoé générant le maxi et rangés par ordre croissant :
Res,maxi=[],0
for z in range(10,100):
p,m=0,0
Z=[int(x) for x in str(z)]
for x in Z:
p+=x**2
P=[int(x)for x in str(p)]
for x in P:
m+=x**2
Res.append((m,z))
if m>maxi:
maxi=m
Res.sort(key=lambda x:x[0], reverse=True)
print("Le maxi de Marc est",str(maxi)+".")
print("L'ensemble des choix de Zoé, générant", maxi, "est :")
i=0
while True:
a,b=Res[i]
if a==maxi:
print(b,end=" ")
i+=1
else:
break
Sortie :
Le maxi de Marc est 145.
L'ensemble des choix possibles de Zoé, générant 145 est :
58 77 85
Marche aussi pour des nombres à 3 chiffres (9 réponses) et 4 chiffres (12 réponses)
Dernière modification par yoshi (23-05-2022 18:32:38)
Arx Tarpeia Capitoli proxima...
Hors ligne