2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
algorithme récursifest une technique de programmation largement utilisée en informatique et en mathématiques qui permet aux fonctionsdirectouindirectatterrirs'appeler résoudre le problème.récursifIdée basiqueIl s’agit de la décomposition de problèmes complexes en sous-problèmes plus petits et similaires jusqu’à ce que ces sous-problèmes soient suffisamment simples pour être résolus directement.
avantage: Le code est concis, la logique est claire et il est facile à comprendre et à écrire.
défaut : Peut être moins efficace que la solution itérative car elle implique plus de surcharge d’appel de fonction. De plus, une récursivité trop profonde peut provoquer des erreurs de débordement de pile.
La récursivité a des applications dans de nombreux algorithmes, tels queparcours d'arbre、Recherche graphique、Programmation dynamique, etc. . Une utilisation appropriée de la récursivité peut simplifier la résolution de problèmes complexes.
def factorial(n):#自定义求n的阶乘函数
if n==1:#判断n=1
return 1#返回1结束
else:#递归条件 即n!=1
return n*factorial(n-1)#递归求阶乘
number = int(input("请输入一个正整数:"))#输入n的值
result = factorial(number)#调用阶乘函数
print("%d 的阶乘是 %d" %(number,result))#输出结果
factorial
La fonction reçoit un paramètre n
, représente le nombre pour lequel la factorielle doit être calculée.La factorielle s’exprime sous la formen!
, défini comme tout inférieur ou égal à n
Le produit d’entiers positifs. Par exemple,5! = 5 × 4 × 3 × 2 × 1 = 120
。
n
Si égal à 1, la fonction renvoie directement 1. C'est la condition de fin de la récursion car la factorielle de 1 est définie comme 1.n
n'est pas égal à 1, la fonction seran
etfactorial(n-1)
Les résultats sont multipliés.factorial(n-1)
est vraifactorial
fonctionL'appel lui-même , mais le paramètre est réduit de 1.Cet appel se poursuivra jusqu'àn
atteint 1.La clé de la récursivité est que chaque appel récursif se rapproche du cas de base, atteignant finalement le cas de base et commençant à renvoyer des valeurs. Dans cet exemple, chaque appel récursif diminue n de 1 jusqu'à ce que n devienne 1.
La récursivité peut rencontrer des problèmes de performances ou des erreurs de débordement de pile lors de la gestion de valeurs volumineuses, car chaque appel de fonction occupe une partie de l'espace de la pile. Pour les opérations mathématiques simples comme les factorielles, il existe souvent des méthodes itératives plus efficaces et plus respectueuses de la mémoire. Cependant, la récursivité offre un moyen élégant et facile à comprendre de résoudre certains problèmes.