如何在 Python 中查找階乘 [附編碼示例]
已發表: 2020-11-30目錄
介紹
我們每個人都必須熟悉階乘這個詞,因為我們都在小學數學科目中被介紹過。 階乘是從 1 到給定數字的所有正整數的乘積。 Factorial 僅針對正值計算,不能針對 Negative 和 Float 類型計算。
我想知道當我學習階乘和其他數學概念時,我會在現實生活中使用它們,這要歸功於數據科學,因為我現在能夠理解線性代數、概率、統計等所有數學組件的重要性。
讓我們看看階乘的重要性,在這篇文章中使用 python 計算它的不同方法。
重要性
讓我們舉個例子,我們在一場世界賽事中有 10 輛車之間的比賽,我們有一個問題陳述來找出這 10 輛車有多少種方式獲得第一、第二、第三。 由於只有 10 輛汽車,我們只想拿一張紙,寫下各種組合。 但是,如果我們有 100 輛或更多的賽事,並且我們有相同或相似的問題陳述,該怎麼辦?
為了解決這些情況,我們有一個叫做Permutation的東西。 我想你會知道這個詞在我們小學裡是排列和組合。 如果您想掌握數據分析和統計技能,這些都是非常需要的。 如果您是初學者並且有興趣了解有關數據科學的更多信息,請查看我們來自頂尖大學的數據科學課程。 這有助於解決如下所述的問題陳述。
解決方案
我們一共有10輛車。
我們需要找出 10 人中有 3 人獲勝的可能性。
10! /(10-3)! = 10! /7! = 720
所以,我們總共有 720 種可能性讓這 10 輛車在比賽中獲得第一、第二、第三名。
Python 實現
Python 是一種高級的、解釋性的和通用的編程語言,它專注於代碼的可讀性,與 Java 或 C++ 相比,Python 語言中使用的語法幫助程序員以更少的步驟完成編碼,並且它構建在 C 之上。
該語言由開發者Guido Van Rossum於 1991 年創立。 Python 廣泛用於大型組織,因為主要用於各種人工智能用例,例如計算機視覺、自然語言處理、深度學習、語音識別、人臉識別、語音識別。
Python 是一種非常強大的編程工具,可用於現實生活中的各種用例。 它提供了一個直接函數,可以計算給定數字的階乘,而無需顯式編寫代碼。 但是,讓我們從一種天真的方法開始,最後了解該功能。
另請閱讀:為什麼 Python 如此受開發人員歡迎?
循環
我們可以通過在每一步乘以從數字 1 迭代到給定數字來計算數字的階乘。 讓我們跳入上述方法的編碼部分。
代碼
number = input (“Enter a Number:”) # 理想情況下,您可以使用任何打印信息
階乘 = 1
if int (number) >=1: # 檢查給定的數字是否為正數。
for i in range (1, int(number)+1): # 從數字 1 循環
factorial = factorial * I # 與每個數字相乘。
print (“Factorial of “, number, ” is: “, factorial) # 打印計算出的階乘。
輸出
運行上面的代碼將為您提供以下輸出:
輸入一個數字:5
5 的階乘是:120
遞歸函數
在這種情況下,我們將在 python 中創建自己的用戶定義函數,這將幫助我們計算給定數字的階乘。

代碼
number = input (“輸入一個數字:”)
def recursive_factorial(number): # 用戶定義的遞歸函數。
if number == 1: # 給定數字是否等於 1 的條件
退貨號碼
elif number < 1: # 給定數字小於 1 的條件
return (“給定的數字小於一,無法計算階乘。”)
別的:
返回數字*recursive_factorial(數字 - 1)
打印 (recursive_factorial(int(number)))
輸出
運行上面的代碼將為您提供以下輸出:
輸入數字:5
120
輸入一個數字:-2
給定的數字小於一且無法計算階乘
輸入一個數字:1
1
數學包中的階乘函數
Python以其易用性和用戶友好的第三方包而聞名,這將簡化許多任務。 在當前情況下,Python 是數據科學家的首選語言。
代碼
import math # 需要的包
number= input(“輸入一個數字:”)
print("", number," 的階乘是 :")
print(math.factorial(int(number))) # 計算階乘的函數
輸出
運行上面的代碼將為您提供以下輸出:
輸入數字:5
5的階乘是:
120
輸入一個數字:5.6
回溯(最近一次通話最後):
5.6 的階乘是:
文件“C:/Users....py”,第 5 行,在
打印(數學。階乘(整數(數字)))
ValueError : 以 10 為基數的 int() 的無效文字:'5.6'
我們得到一個值錯誤,因為我們無法計算浮點整數的階乘。 當我們顯式編寫 python 代碼時,我們需要注意檢查所有條件並輸出相關消息,但是在 python 中 Math 包的階乘函數中,它為我們做了所有事情,這有助於我們減少行代碼在我們的項目或任何問題陳述中使用 Factorial。
必讀: Python 教程
結論
在本文中,我們了解了階乘和其他重要數學概念在現實生活中的重要性和應用。 通過不同類型的代碼來計算給定數字的階乘。 本文僅介紹 Python 中的階乘,但 MATH 包中還有許多其他數學計算。 剛接觸 Python 的人可以更深入地了解它們,甚至可以嘗試一些。
如果您想了解數據科學,請查看 IIIT-B 和 upGrad 的數據科學執行 PG 計劃,該計劃是為在職專業人士創建的,提供 10 多個案例研究和項目、實用的實踐研討會、行業專家的指導、1與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。
Python中的遞歸是什麼?
Python 中的遞歸意味著遍歷數據以達到確定的結果。 這是一個眾所周知的數學和編程過程,其中某些東西(語句或函數)是根據自身定義的。 在遞歸的幫助下,用戶或開發人員可以將復雜的代碼和函數拆分為更小的子部分,並且創建序列變得更容易訪問。 開發人員在使用遞歸時應格外小心,因為編寫一個從不終止或消耗過多內存或 CPU 功率的函數非常頻繁。 如果做得正確,遞歸可能是一種非常有效和數學創新的編程方式。
學習 Python 基礎知識需要多少時間?
Python 被認為是最簡單的編程語言,因此學習 Python 的基礎知識很容易,而且不是很耗時。 學生或專業人士可以花 1-2 個月的時間來學習 Python 的基礎知識。 專業人士也可以通過每天投入大約 2-3 小時,在 4-5 個月內掌握所有基本的 Python 函數和庫。 掌握 Python 很容易,因為大多數代碼的語句較少,並且有更多的預定義函數。
Python中階乘程序的時間複雜度是多少?
我們從階乘程序中發現,階乘(0)只是一次比較(1 個時間單位),階乘(n)是階乘(n-1)的一次比較、一次乘法、一次減法和時間。 所以我們可以說 T(n) = T(n - 1) + 3 和 T(0) = 1。把值放入,我們發現 T(N) 與 n 成正比,如 Big-Oh 符號所示。 因此,階乘程序的時間複雜度為 O(n)。