[Python] Note d'apprentissage 1

Tour de Hanoi

py


def hanoinoto(hanoi, n):
    """Affichage de la tour à Hanoi"""
    print('------', n)
    for stack in hanoi:
        print('#', ''.join(stack))

N = 3  #Nombre de disques

#État du disque à trois positions
hanoi = [list('4321')[-N:], [], []]
hanoinoto(hanoi, 0)  #Affichage de l'état initial

#Déplacer tous les disques
for n in range(1, 2**N):
    i = (n & (n - 1)) % 3  #Déplacer la source (opération sur les bits)
    j = ((n | (n - 1)) + 1) % 3  #Déplacer la destination (calcul des bits)
    c = hanoi[i].pop()  #Pop de la position i
    hanoi[j].append(c)  #Ajouter à la position j(push)
    hanoinoto(hanoi, n)

*** Résultat de l'exécution ***

------ 0 # 321 # # ------ 1 # 32 # # 1 ------ 2 # 3 # 2 # 1 ------ 3 # 3 # 21 # ------ 4 # # 21 # 3 ------ 5 # 1 # 2 # 3 ------ 6 # 1 # # 32 ------ 7 # # # 321

Recommended Posts

[Python] Note d'apprentissage 1
Remarque: Python
apprentissage de python
Note de Python
Note d'apprentissage Python_002
Remarque: décorateur Python
Note de programmation Python
Notes d'apprentissage Python
sortie d'apprentissage python
Note d'apprentissage Python_004
Site d'apprentissage Python
Apprentissage Python jour 4
Apprentissage en profondeur Python
Note d'apprentissage Python_003
apprentissage python (supplément)
Apprentissage profond × Python
[Remarque] openCV + python
Note du débutant Python
notes d'apprentissage python
Note récapitulative sur la programmation d'apprentissage automatique Python (Jupyter)
Classe Python (mémo d'apprentissage Python ⑦)
Apprendre Python avec ChemTHEATER 03
"Orienté objet" appris avec python
Module Python (mémo d'apprentissage Python ④)
[Note] future déclaration ~ Python ~
Apprentissage amélioré 1 installation de Python
[Note] Lecture de fichier ~ Python ~
Apprendre Python avec ChemTHEATER 05-1
Python: pratique du Deep Learning
Python ~ Apprentissage rapide de la grammaire ~
Python: apprentissage non supervisé: principes de base
Procédure d'apprentissage privée Python
Apprendre Python avec ChemTHEATER 02
Apprendre Python avec ChemTHEATER 01
Remarque pour faire de python un démon
Remarque: python Skeleton Nya
Python: réglage du Deep Learning
Apprentissage amélioré Python + Unity (apprentissage)
Python: apprentissage supervisé (retour)
Note d'introduction Python Tkinter
Python: apprentissage supervisé (classification)
[Note] Python, lors du démarrage du machine learning / deep learning [Liens]
Note
Gestion des exceptions Python (mémo d'apprentissage Python ⑥)
Note d'apprentissage Python de Mayungo: liste d'histoires et de liens
Mémo d'apprentissage O'Reilly python3 Primer
Flux d'apprentissage pour les débutants en Python
Python
Python: Apprentissage supervisé: Hyper Paramètres Partie 1
Plan d'apprentissage Python pour l'apprentissage de l'IA
Apprentissage amélioré à partir de Python
Apprentissage automatique avec Python! Préparation
Note d'entrée Python dans AtCoder
[Note] Faites fonctionner MongoDB avec Python