Bonjour
Je me suis acheté des tours de Hanoi en bois
Après trois jours de tatillonnage sur plus de vingt pages de brouillon j'ai enfin réussi à retrouver par moi même un morceau de l'algorithme général de récursion déplaçant les huit disques de la tour 1 à la tour 3, sans aide sur internet aucune.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 T0 = [ 0, 1, 2, 3, 4, 5, 6, 7 ] #Disques de diamêtres 0 à 7, empilés du plus petit sur le plus grand T1 = [ [],[],[],[], [],[],[],[] ] T2 = [ [],[],[],[], [],[],[],[] ] i=0 j=0 k=0 def move(i, j, k): if i == j : if k % 2 == 0: T0[i] = [] T2[i] = i else: T0[i] = [] T1[i] = i else: move(0, j-1, k-1) move(j, j, k) move(0, j-1, k-1) move(0, 7, 2) #Déplace et empile un par un les cylindres 0 à 7 sur la tour 2 # (jamais un plus grand sur un plus petit) # en t'aidant de la tour 1 print(T0) ; print(T1) ; print(T2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [[], [], [], [], [], [], [], []] [0, [], 2, [], 4, [], 6, []] [[], 1, [], 3, [], 5, [], 7]
Le résultat imprimé par mon Notebook Jupiter semble indiquer que le travail est encore fait à moitié.
Manuellement je maîtrise maintenant parfaitement les 255 déplacements de disques, ce qui n'est pas encore le cas de mon ordinateur.
Je me suis alors replongé le crayon à la main pour chercher la route récursive manquante mais là honnêtement je sollicite votre aide
Merci !
Partager