Was ist faktoriell?
In mathematischen Operationen stellt n! das 阶乘
von n dar, das durch die mathematische Formel dargestellt wird:
n!=1*2*3*.. ..* (n-1)*n
Ein Beispiel finden Sie unten: Zum Beispiel die Fakultät von 5
# 正确的结果 1*2*3*4*5
Das korrekte Ergebnis ist: 120
#🎜🎜 #Der Editor bietet Ihnen drei verschiedene Methoden zum Implementieren faktorieller Operationen:
# 🎜🎜#Methode 1 – Kumulative Multiplikation
result = 1 # 给定一个初始值 n = 5 for i in range(1, n+1): print("累乘前result: ", result) print("循环数i的值: ", i) result = result * i # 不断地累成result print("累乘后result: ", result) print("------------") result
Ergebnis vor kumulativer Multiplikation: 1Wert der Zyklusnummer i: 2
Ergebnis nach kumulativer Multiplikation: 2
- -----------
Ergebnis vor kumulativer Multiplikation: 2
Wert der Zyklusnummer i: 3
Ergebnis nach kumulativer Multiplikation: 6
---- --------
Ergebnis vor kumulativer Multiplikation: 6
Wert der Zyklusnummer i: 4
Ergebnis nach kumulativer Multiplikation: 24
------ -----
Ergebnis vor kumulativer Multiplikation: 24
Wert der Zyklusnummer i: 5
Ergebnis nach kumulativer Multiplikation: 120
--------- --
Das Ergebnis ist: 120
Methode 2 – Rekursive Funktion verwendenrrree#🎜🎜 #def recursion(n): if n == 0 or n == 1: # 特殊情况 return 1 else: return n * recursion(n-1) # 递归函数Nach dem Login kopieren
120
recursion(5)
Erklärung der Verwendung der Reduzierungsfunktion:120
#🎜🎜 #
# 在python3中reduce函数被移入到functools中;不再是内置函数 from functools import reduce n = 5 reduce(lambda x,y: x*y, range(1,n+1))
Sie müssen eine auszuführende Funktion angeben (oben ist eine anonyme Funktion oder eine benutzerdefinierte Funktion). Funktion)
# 🎜🎜#Gegebenes iterierbares Objekt iterierbar
Optionaler Initialisierer
reduce(function, iterable[, initializer])
# 使用自定义函数 from functools import reduce number = range(1,6) # number = [1,2,3,4,5] def add(x,y): return x+y reduce(add, number) # 1+2+3+4+5
Wie implementiert man die kumulative Summe von Fakultäten? #🎜🎜 ## 🎜🎜## 使用匿名函数 from functools import reduce number = range(1,6) reduce(lambda x,y: x+y, number) # 1+2+3+4+5Nach dem Login kopierenDas richtige Ergebnis ist 153#🎜🎜 ## 🎜🎜##Methode 1 - kumulative Multiplikation+Summe
#🎜🎜 ## 🎜🎜#120#🎜🎜 ## 求出下面的阶乘的累加求和 1 + 1*2 + 1*2*3 + 1*2*3*4 + 1*2*3*4*5Nach dem Login kopieren
Das Obige ist die Fakultät einer einzelnen Zahl, die wir implementiert haben, um die kumulative Summe zu ermitteln:153#🎜🎜 ##?? 🎜## ## 153#🎜🎜 #Methode 4 – Reduzieren kombiniert mit Summe# 定义累乘函数 def func(n): result = 1 for i in range(1, n+1): result = result * i # 不断地累成re return result func(5) # 测试案例Nach dem Login kopieren
# func(1) + func(2) + func(3) + func(4) + func(5) # 调用累乘函数 sum(func(i) for i in range(1,6))
# 定义累乘函数 def func(n): result = 1 # 定义初始值 for i in range(1, n+1): result = result * i # 不断地累成re # if result == 1 : 等价于下面的条件 if n==0 or n==1: return 1 else: # 下面是关键代码 return result + func(n-1) #在这里实现递归 func(n-1) func(5)
153Methode 5 – zweimalige Reduzierfunktion
def recursion(n): """ 之前定义的递归函数 """ if n == 0 or n == 1: return 1 else: return n * recursion(n-1)
Übergeben Sie das obige Ergebnis erneut als iterierbare Liste an die Ausführungsfunktion die Summe zweier Elemente.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die mathematische Fakultät n in Python!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!