So implementieren Sie die mathematische Fakultät n in Python!

WBOY
Freigeben: 2023-05-11 08:40:05
nach vorne
4121 Leute haben es durchsucht

Python-Implementierung der faktoriellen Basisversion

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
Nach dem Login kopieren

Das korrekte Ergebnis ist: 120

#🎜🎜 #Der Editor bietet Ihnen drei verschiedene Methoden zum Implementieren faktorieller Operationen:

  • Kumulative Multiplikation basierend auf for-Operation#🎜🎜 #

  • Basierend auf rekursiver Funktionsimplementierung
  • Reduzierte Funktionsimplementierung basierend auf Bibliotheksfunktools von Drittanbietern
  • #🎜 🎜#

    # 🎜🎜#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
    Nach dem Login kopieren
Ergebnis vor kumulativer Multiplikation: 1

Wert der Schleifennummer i: 1

Ergebnis nach kumulativer Multiplikation: 1#🎜 🎜#----------------
Ergebnis vor kumulativer Multiplikation: 1

Wert 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 verwenden

def recursion(n):
    if n == 0 or n == 1:  # 特殊情况
        return 1
    else:
        return n * recursion(n-1)  # 递归函数
Nach dem Login kopieren
rrree#🎜🎜 #
120

Methode 3 – Funktion von Bibliotheks-Funktools von Drittanbietern reduzieren

recursion(5)
Nach dem Login kopieren

120

#🎜🎜 #
Erklärung der Verwendung der Reduzierungsfunktion:

# 在python3中reduce函数被移入到functools中;不再是内置函数

from functools import reduce 

n = 5

reduce(lambda x,y: x*y, range(1,n+1))
Nach dem Login kopieren

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])
    Nach dem Login kopieren
  • # 🎜🎜#15

    # 使用自定义函数
    
    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
    Nach dem Login kopieren
  • 15

  • Python implementiert ial Akkumulation und Summation- erweiterte Version
#🎜 🎜#Das Folgende ist eine erweiterte Anforderung:
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+5
Nach dem Login kopieren

Das richtige Ergebnis ist 153#🎜🎜 ## 🎜🎜##Methode 1 - kumulative Multiplikation+Summe

# 求出下面的阶乘的累加求和

1 + 1*2 + 1*2*3 + 1*2*3*4 + 1*2*3*4*5
Nach dem Login kopieren
#🎜🎜 ## 🎜🎜#120#🎜🎜 #
Das Obige ist die Fakultät einer einzelnen Zahl, die wir implementiert haben, um die kumulative Summe zu ermitteln:

# 定义累乘函数

def func(n):
    result = 1
    
    for i in range(1, n+1):
        result = result * i  # 不断地累成re
          
    return result
    
func(5)  # 测试案例
Nach dem Login kopieren

153#🎜🎜 ##?? 🎜## ## 153#🎜🎜 #

Methode 4 – Reduzieren kombiniert mit Summe

# func(1) + func(2) + func(3) +  func(4) + func(5)

# 调用累乘函数
sum(func(i)  for i in range(1,6))
Nach dem Login kopieren
120

Einzelanruf an die Reduzierfunktion, kombiniert mit einer For-Schleife. Summe mit Summe

# 定义累乘函数

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)
Nach dem Login kopieren

153

Methode 5 – zweimalige Reduzierfunktion

def recursion(n):
    """
    之前定义的递归函数
    """
    if n == 0 or n == 1:
        return 1
    else:
        return n * recursion(n-1)
Nach dem Login kopieren
#🎜 🎜# [1, 2, 6, 24, 120]

Ü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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage