Heim  >  Artikel  >  Backend-Entwicklung  >  Methode der faktoriellen Summierung im Python-Code

Methode der faktoriellen Summierung im Python-Code

高洛峰
高洛峰Original
2017-03-28 16:48:4221658Durchsuche

Anforderungen:

Fakultät: Es ist auch ein Begriff in der Mathematik; der Begriff „Fakultät“ bezieht sich auf die Multiplikation von 1 mal 2 mal 3 mal 4 mit der erforderlichen Zahl. Die h-Fakultät wird beispielsweise als h! ausgedrückt. Die Fakultät ist im Allgemeinen schwer zu berechnen, da die Produkte sehr groß sind.

Frage: Finden Sie die Summe von 1+2!+3!+...+20!

Implementierungsumgebung: Python3

Editor:pycharm

Analyse: 1. Die Berechnung der Fakultät ist ein problematischer Teil. Es ist eine bessere Lösung, eine rekursive Funktion zu verwenden, um sie zu implementieren Funktion zur Implementierung der Lösungsfaktorfunktion.

def  recursion(n):
 
   '定义递归函数实现求阶乘功能'
if n==1:
    return 1
else:
 
    return  n*recursion(n-1)

2. Summierungsidee: Sie können direkt summieren oder eine Liste definieren, um das durch für erhaltene faktorielle Ergebnis an die Liste anzuhängen und dann die Summe zu verwenden( ) Funktion zum Finden und.

sum_0=0
print("for循环直接调用递归函数求和".center(80,"*")) #显示效果明显
for  i  in range(1,21):
    sum_0 +=recursion(i)
print(sum_0)
 
列表求和方案:
list=[] #定义一个空的列表,将调用递归函数生成的阶乘值追加到列表
print("将1-20的阶乘写入列表,使用sum函数求和".center(80,"*")) #显示效果明显
for  i  in range(1,21):
    list.append(recursion(i))# 将调用递归函数生成的阶乘值追加到列表
print(sum(list)) #列表求和

Beide können ihre Funktionen mit der gleichen Anzahl an Codezeilen erreichen.

Wissenspunkte nutzen: rekursive Funktionen, for-Schleifen, range()-Funktionen usw.

Vollständiger Quellcode und Ergebnisse:

#/usr/bin/env python
#_*_coding:utf-8_*_
def  recursion(n):
    '定义递归函数实现求阶乘功能'
    if n==1:
        return 1
    else:
        return  n*recursion(n-1)
list=[] #定义一个空的列表,将调用递归函数生成的阶乘值追加到列表
 
print("将1-20的阶乘写入列表,使用sum函数求和".center(80,"*")) #显示效果明显
for  i  in range(1,21):
    list.append(recursion(i))# 将调用递归函数生成的阶乘值追加到列表
print(sum(list)) #列表求和
sum_0=0
print("for循环直接调用递归函数求和".center(80,"*")) #显示效果明显
for  i  in range(1,21):
    sum_0 +=recursion(i)
print(sum_0)
结果:
*****************************将1-20的阶乘写入列表,使用sum函数求和*****************************
2561327494111820313
********************************for循环直接调用递归函数求和*********************************
2561327494111820313

Es wurde bestätigt, dass beide grundlegende Funktionen erreichen können, Berechnungen mit größeren Datenmengen wurden jedoch nicht getestet.

Das obige ist der detaillierte Inhalt vonMethode der faktoriellen Summierung im Python-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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