Il m'est demandé "d'arranger la liste en 15 nombres entiers de 1 Í 15 de
telle sorte que la somme de 2 nombres voisins soit toujours un carré
parfait".
Je ne suis pas sÍ»r d'être parti dans la bonne direction. Ensuite, si
oui, quelle indication me donneriez-vous pour répondre Í la question ?
Si non, quelle piste me faudrait-il explorer ?
Merci et bonne journée,
Il m'est demandé "d'arranger la liste en 15 nombres entiers de 1 Í 15 de
telle sorte que la somme de 2 nombres voisins soit toujours un carré
parfait".
Je ne suis pas sÍ»r d'être parti dans la bonne direction. Ensuite, si
oui, quelle indication me donneriez-vous pour répondre Í la question ?
Si non, quelle piste me faudrait-il explorer ?
Merci et bonne journée,
Il m'est demandé "d'arranger la liste en 15 nombres entiers de 1 Í 15 de
telle sorte que la somme de 2 nombres voisins soit toujours un carré
parfait".
Je ne suis pas sÍ»r d'être parti dans la bonne direction. Ensuite, si
oui, quelle indication me donneriez-vous pour répondre Í la question ?
Si non, quelle piste me faudrait-il explorer ?
Merci et bonne journée,
Il m'est demandé "d'arranger la liste en 15 nombres entiers de 1 Í 15
de telle sorte que la somme de 2 nombres voisins soit toujours un
carré parfait".
J'ai créé une liste (resu) avec chaque couple susceptible de me donner
un carré parfait :
liste=[2,14,11,5,8,12,6,3,1,9,7,13,5,4,10,15]
resu=[]
deb=[x for x in range(1,16)]
fin=[x for x in range(1,16)]
for i in deb:
for j in fin:
tot=i+j
tot1=[i,j]
tot1.sort()
if tot1 not in resu and i!=j and tot**.5==int(tot**.5):
resu.append(tot1)
Je ne suis pas sÍ»r d'être parti dans la bonne direction.
Ensuite, si oui, quelle indication me donneriez-vous pour répondre Í
la question ? Si non, quelle piste me faudrait-il explorer ?
Il m'est demandé "d'arranger la liste en 15 nombres entiers de 1 Í 15
de telle sorte que la somme de 2 nombres voisins soit toujours un
carré parfait".
J'ai créé une liste (resu) avec chaque couple susceptible de me donner
un carré parfait :
liste=[2,14,11,5,8,12,6,3,1,9,7,13,5,4,10,15]
resu=[]
deb=[x for x in range(1,16)]
fin=[x for x in range(1,16)]
for i in deb:
for j in fin:
tot=i+j
tot1=[i,j]
tot1.sort()
if tot1 not in resu and i!=j and tot**.5==int(tot**.5):
resu.append(tot1)
Je ne suis pas sÍ»r d'être parti dans la bonne direction.
Ensuite, si oui, quelle indication me donneriez-vous pour répondre Í
la question ? Si non, quelle piste me faudrait-il explorer ?
Il m'est demandé "d'arranger la liste en 15 nombres entiers de 1 Í 15
de telle sorte que la somme de 2 nombres voisins soit toujours un
carré parfait".
J'ai créé une liste (resu) avec chaque couple susceptible de me donner
un carré parfait :
liste=[2,14,11,5,8,12,6,3,1,9,7,13,5,4,10,15]
resu=[]
deb=[x for x in range(1,16)]
fin=[x for x in range(1,16)]
for i in deb:
for j in fin:
tot=i+j
tot1=[i,j]
tot1.sort()
if tot1 not in resu and i!=j and tot**.5==int(tot**.5):
resu.append(tot1)
Je ne suis pas sÍ»r d'être parti dans la bonne direction.
Ensuite, si oui, quelle indication me donneriez-vous pour répondre Í
la question ? Si non, quelle piste me faudrait-il explorer ?
Ce qu'on voit avec la description ci-dessus, c'est qu'il ne suffit pas
de faire deux boucles imbriquées, il faudrait en faire quinze (ou
quatorze), pour essayer tous les ordres des quinze nombres.
Mais on ne va pas faire cela, on va utiliser Í la place une fonction
récursive
Ce qu'on voit avec la description ci-dessus, c'est qu'il ne suffit pas
de faire deux boucles imbriquées, il faudrait en faire quinze (ou
quatorze), pour essayer tous les ordres des quinze nombres.
Mais on ne va pas faire cela, on va utiliser Í la place une fonction
récursive
Ce qu'on voit avec la description ci-dessus, c'est qu'il ne suffit pas
de faire deux boucles imbriquées, il faudrait en faire quinze (ou
quatorze), pour essayer tous les ordres des quinze nombres.
Mais on ne va pas faire cela, on va utiliser Í la place une fonction
récursive
Le 28/09/2022 Í 08:49, Dominique a écrit :
Bon, j'abdique. J'ai tenté avec itertools.permutations. Cette fonction
est très intéressante, mais elle échoue avec 15 chiffres => freeze de
mon PC !
J'ai recopié la solution du livre :
****************************
l15=[n for n in range(1,16)]
v=[[3,8,15],[7,14],[1,6,13],[5,12],[4,11],[3,10],[2,9],[1,8],[7],[6,15],[5,14],[4,13],[3,12],[2,11],[1,10]]
t=[]
for a in range(1,16):
for b in v[a-1]:
for c in v[b-1]:
for d in v[c-1]:
for e in v[d-1]:
for f in v[e-1]:
for g in v[f-1]:
for h in v[g-1]:
for i in v[h-1]:
for j in v[i-1]:
for k in v[j-1]:
for l in v[k-1]:
for m in v[l-1]:
for n in v[m-1]:
for o in v[n-1]:
t.append([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o])
#print(t)
for l in t:
if sorted(l)==l15:
print(l)
****************************
Elle me donne deux réponses réciproques :
[8, 1, 15, 10, 6, 3, 13, 12, 4, 5, 11, 14, 2, 7, 9]
[9, 7, 2, 14, 11, 5, 4, 12, 13, 3, 6, 10, 15, 1, 8]
Mais je n'arrive pas bien Í comprendre cette solution...
Le 28/09/2022 Í 08:49, Dominique a écrit :
Bon, j'abdique. J'ai tenté avec itertools.permutations. Cette fonction
est très intéressante, mais elle échoue avec 15 chiffres => freeze de
mon PC !
J'ai recopié la solution du livre :
****************************
l15=[n for n in range(1,16)]
v=[[3,8,15],[7,14],[1,6,13],[5,12],[4,11],[3,10],[2,9],[1,8],[7],[6,15],[5,14],[4,13],[3,12],[2,11],[1,10]]
t=[]
for a in range(1,16):
for b in v[a-1]:
for c in v[b-1]:
for d in v[c-1]:
for e in v[d-1]:
for f in v[e-1]:
for g in v[f-1]:
for h in v[g-1]:
for i in v[h-1]:
for j in v[i-1]:
for k in v[j-1]:
for l in v[k-1]:
for m in v[l-1]:
for n in v[m-1]:
for o in v[n-1]:
t.append([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o])
#print(t)
for l in t:
if sorted(l)==l15:
print(l)
****************************
Elle me donne deux réponses réciproques :
[8, 1, 15, 10, 6, 3, 13, 12, 4, 5, 11, 14, 2, 7, 9]
[9, 7, 2, 14, 11, 5, 4, 12, 13, 3, 6, 10, 15, 1, 8]
Mais je n'arrive pas bien Í comprendre cette solution...
Le 28/09/2022 Í 08:49, Dominique a écrit :
Bon, j'abdique. J'ai tenté avec itertools.permutations. Cette fonction
est très intéressante, mais elle échoue avec 15 chiffres => freeze de
mon PC !
J'ai recopié la solution du livre :
****************************
l15=[n for n in range(1,16)]
v=[[3,8,15],[7,14],[1,6,13],[5,12],[4,11],[3,10],[2,9],[1,8],[7],[6,15],[5,14],[4,13],[3,12],[2,11],[1,10]]
t=[]
for a in range(1,16):
for b in v[a-1]:
for c in v[b-1]:
for d in v[c-1]:
for e in v[d-1]:
for f in v[e-1]:
for g in v[f-1]:
for h in v[g-1]:
for i in v[h-1]:
for j in v[i-1]:
for k in v[j-1]:
for l in v[k-1]:
for m in v[l-1]:
for n in v[m-1]:
for o in v[n-1]:
t.append([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o])
#print(t)
for l in t:
if sorted(l)==l15:
print(l)
****************************
Elle me donne deux réponses réciproques :
[8, 1, 15, 10, 6, 3, 13, 12, 4, 5, 11, 14, 2, 7, 9]
[9, 7, 2, 14, 11, 5, 4, 12, 13, 3, 6, 10, 15, 1, 8]
Mais je n'arrive pas bien Í comprendre cette solution...
Le 28/09/2022 Í 08:49, Dominique a écrit :
Bon, j'abdique. J'ai tenté avec itertools.permutations. Cette fonction
est très intéressante, mais elle échoue avec 15 chiffres => freeze de
mon PC !
J'ai recopié la solution du livre :
l15=[n for n in range(1,16)]
v=[[3,8,15],[7,14],[1,6,13],[5,12],[4,11],[3,10],[2,9],[1,8],[7],[6,15],[5,14],[4,13],[3,12],[2,11],[1,10]]
t=[]
for a in range(1,16):
for b in v[a-1]:
for c in v[b-1]:
for d in v[c-1]:
for e in v[d-1]:
for f in v[e-1]:
for g in v[f-1]:
for h in v[g-1]:
for i in v[h-1]:
for j in v[i-1]:
for k in v[j-1]:
for l in v[k-1]:
for m in v[l-1]:
for n in v[m-1]:
for o in v[n-1]:
t.append([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o])
#print(t)
for l in t:
if sorted(l)==l15:
print(l)
Le 28/09/2022 Í 08:49, Dominique a écrit :
Bon, j'abdique. J'ai tenté avec itertools.permutations. Cette fonction
est très intéressante, mais elle échoue avec 15 chiffres => freeze de
mon PC !
J'ai recopié la solution du livre :
l15=[n for n in range(1,16)]
v=[[3,8,15],[7,14],[1,6,13],[5,12],[4,11],[3,10],[2,9],[1,8],[7],[6,15],[5,14],[4,13],[3,12],[2,11],[1,10]]
t=[]
for a in range(1,16):
for b in v[a-1]:
for c in v[b-1]:
for d in v[c-1]:
for e in v[d-1]:
for f in v[e-1]:
for g in v[f-1]:
for h in v[g-1]:
for i in v[h-1]:
for j in v[i-1]:
for k in v[j-1]:
for l in v[k-1]:
for m in v[l-1]:
for n in v[m-1]:
for o in v[n-1]:
t.append([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o])
#print(t)
for l in t:
if sorted(l)==l15:
print(l)
Le 28/09/2022 Í 08:49, Dominique a écrit :
Bon, j'abdique. J'ai tenté avec itertools.permutations. Cette fonction
est très intéressante, mais elle échoue avec 15 chiffres => freeze de
mon PC !
J'ai recopié la solution du livre :
l15=[n for n in range(1,16)]
v=[[3,8,15],[7,14],[1,6,13],[5,12],[4,11],[3,10],[2,9],[1,8],[7],[6,15],[5,14],[4,13],[3,12],[2,11],[1,10]]
t=[]
for a in range(1,16):
for b in v[a-1]:
for c in v[b-1]:
for d in v[c-1]:
for e in v[d-1]:
for f in v[e-1]:
for g in v[f-1]:
for h in v[g-1]:
for i in v[h-1]:
for j in v[i-1]:
for k in v[j-1]:
for l in v[k-1]:
for m in v[l-1]:
for n in v[m-1]:
for o in v[n-1]:
t.append([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o])
#print(t)
for l in t:
if sorted(l)==l15:
print(l)
LÍ , je cherche comment répondre Í une question simple : soit le nombre
123456789, o͹ placer 3 signes + ou - de telle sorte qu'on obtienne 100
? Tous les chiffres doivent, bien sÍ»r, être utilisés et dans leur
ordre croissant, du style (faux ici) 1234-456-7+89
Je cherche Í créer un ensemble de liste o͹ la première ferait de 1 Í 6
chiffres, la 2e idem mais du caractère 2 Í 7, la 3e 3 Í 8 et la
dernière 4 Í 9. Puis je placerai toutes les combinaisons de + et de
moins entre pour voir si une me donne 100. Est-ce la bonne piste ? Je
verrai...
LÍ , je cherche comment répondre Í une question simple : soit le nombre
123456789, o͹ placer 3 signes + ou - de telle sorte qu'on obtienne 100
? Tous les chiffres doivent, bien sÍ»r, être utilisés et dans leur
ordre croissant, du style (faux ici) 1234-456-7+89
Je cherche Í créer un ensemble de liste o͹ la première ferait de 1 Í 6
chiffres, la 2e idem mais du caractère 2 Í 7, la 3e 3 Í 8 et la
dernière 4 Í 9. Puis je placerai toutes les combinaisons de + et de
moins entre pour voir si une me donne 100. Est-ce la bonne piste ? Je
verrai...
LÍ , je cherche comment répondre Í une question simple : soit le nombre
123456789, o͹ placer 3 signes + ou - de telle sorte qu'on obtienne 100
? Tous les chiffres doivent, bien sÍ»r, être utilisés et dans leur
ordre croissant, du style (faux ici) 1234-456-7+89
Je cherche Í créer un ensemble de liste o͹ la première ferait de 1 Í 6
chiffres, la 2e idem mais du caractère 2 Í 7, la 3e 3 Í 8 et la
dernière 4 Í 9. Puis je placerai toutes les combinaisons de + et de
moins entre pour voir si une me donne 100. Est-ce la bonne piste ? Je
verrai...
P/S: il y a une seule solution
P/S: il y a une seule solution
P/S: il y a une seule solution
P/S: il y a une seule solution
Tu es vexant, je planche lÍ -dessus depuis 2 jours :-))
P/S: il y a une seule solution
Tu es vexant, je planche lÍ -dessus depuis 2 jours :-))
P/S: il y a une seule solution
Tu es vexant, je planche lÍ -dessus depuis 2 jours :-))