Bonsoir. J'ai essayé d'être un débutant J'espère que cela sera utile à tout le monde.
Par exemple, comment pouvons-nous atteindre 3! (= 3 * 2 * 1)?
print(3*2*1)
C'est fait (rires)! Alors, pourquoi ne pas l'écrire comme ça en utilisant def?
test.py
def test(n:int=3):
if n>1:
return n * test(n-1)
else:
return 1
print(test())
Je l'ai essayé à la hâte avec la valeur initiale de 3. Pour le moment, remplaçons-les un par un. Premièrement, lorsque n == 3.
test.py
# n ==Quand 3
def test(n:int=3):
#n ==3 alors allez à l'intérieur si
if n>1:
#return 3 * test(3-1)
return n * test(n-1)
else:
return 1
print(test())
Hourra. Je peux sortir car le retour est arrivé !! 3 * test(2) !? Vous ne pouvez pas terminer sans connaître le test (2). Il n'y a pas moyen. Je ne suis pas sûr, mais considérez n == 2, c'est-à-dire test (2).
test.py
# n ==Quand
def test(n:int=2):
#n ==2 alors allez à l'intérieur si
if n>1:
#return 2 * test(2-1)
return n * test(n-1)
else:
return 1
print(test())
Hmm!? Retourne 2 * test (1) !? Test () apparaît à nouveau, mais cette fois c'est test (1). Cela ne peut pas être aidé, essayons également test (1).
test.py
# n ==Quand 1
def test(n:int=1):
if n>1:
return n * test(n-1)
#n ==Puisqu'il est 1, il va à l'intérieur d'autre
else:
#Renvoie 1
return 1
print(test())
Pour le moment, quand n == 1, c'est return 1, donc J'ai trouvé que la réponse est 1. Je suis content d'avoir enfin rencontré un entier (rires)
Organisons-le une fois. Après avoir exécuté n == 3 comme indiqué sur la figure, n == 2 est apparu, puis n == 1 est apparu. En tant qu'image, 2 * test (1) est intégré dans test (2), Il semble que 1 * test (0) soit intégré dans test (1).
Ce que nous savons maintenant, c'est que 1 * test (0) est 1 * 1, Autrement dit, c'est juste 1.
Très bien, ignorez une fois le test 3 * (2) Remplaçons 1 * test (0) par le test (1) de 2 * test (1) au centre de la figure ci-dessous. Puisque 2 * test (1) == 2 * {1 * test (0)}, nous savons que 2 * 1 = 2. Cela signifie. .. .. 3 * test (2) == 3 * {2 * test (1)} == 3 * {2 * 1}. Avec cela, j'ai réussi à exprimer 3!.
Comme mentionné ci-dessus, lorsqu'un certain événement s'inclut On dit qu'il est récursif.
En utilisant cette idée, non seulement 3! Mais aussi l'échelle de n peut être exprimée, bien sûr. C'est une description simple, mais quand on y pense, c'est compliqué. C'était intéressant, merci pour votre travail acharné (≧ ▽ ≦).
Recommended Posts