کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

محاسبه‌ی فاکتوریل یک عدد با پایتون

فاکتوریل چیست؟

فاکتوریل یک عدد صحیح و غیرمنفی است. این مقدار حاصلضرب تمام اعداد مثبت کمتر یا مساوی عدد مورد نظر شما می باشد. این مقدار با علامت تعجب (!) نمایش داده می‌شود.

مثال
n! = n* (n-1) * (n-2) *........1  
4! = 4x3x2x1 = 24    

مقدار فاکتوریل عدد 4 برابر با 24 است.

نکته: مقدار فاکتوریل عدد 0 همواره برابر با 1 است.

روش اول برای محاسبه فاکتوریل : استفاده مستقیم از فرمول

num = int(input("Enter a number: "))    
factorial = 1    
if num < 0:    
   print(" Factorial does not exist for negative numbers")    
elif num == 0:    
   print("The factorial of 0 is 1")    
else:    
   for i in range(1,num + 1):    
       factorial = factorial*i    
   print("The factorial of",num,"is",factorial)    
خروجی
Enter a number: 10
The factorial of 10 is 3628800

در مثال فوق، متغیر num یک مقدار را از کاربر دریافت می کند.یک متغیر فاکتوریل نیز معرفی و مقدار پیش فرض آن را به عدد 1 اختصاص دادیم. سپس بررسی می کنیم که اگر کاربر عددی کمتر از 1 وارد کند، آنگاه مقدار فاکتوریل برای عدد منفی وجود ندارد. اگر عدد ورودی 0 بود مقدار فاگتوریل آن را به 1 و اگر بزرگ تر از 1 بوده مقدار فاکتوریل را با فرمول فوق محاسبه می کنیم.


روش دوم : استفاده از بازگشت (Recursion)

بازگشت در پایتون یک روش است که خود را فراخوانی می‌کند. بیایید مثال زیر را درک کنیم.

def fact(n):  
    return 1 if (n==1 or n==0) else n * fact(n - 1);  
  
num = 5  
print("Factorial of",num,"is",)  
fact(num))  
خروجی
Factorial of 5 is 120

در کد فوق، از بازگشت برای محاسبه‌ی فاکتوریل استفاده کرده‌ایم. تابع fact(num) را تعریف کرده‌ایم که اگر مقدار واردشده 1 باشد، یک را برمی‌گرداند و در غیر اینصورت تا زمانی که به فاکتوریل یک عدد داده‌شده برسیم، به صورت بازگشتی ادامه پیدا می‌کند.


روش سوم : استفاده از تابع داخلی factorial

در این روش ما از ماژول math استفاده خواهیم کرد که متد داخلی factorial را فراهم می‌کند. به مثال زیر توجه کنید.

import math  
def fact(n):  
    return(math.factorial(n))  
  
num = int(input("Enter the number:"))  
f = fact(num)  
print("Factorial of", num, "is", f)  
خروجی
Enter the number: 6
Factorial of 6 is 720

ما ماژول math را که دارای تابع factorial است import کرده ایم. این تابع یک عدد صحیح را به عنوان ورودی می‌گیرد تا فاکتوریل آن را محاسبه کند. در اینجا نیازی به استفاده از فرمول نداریم.


1402/09/13 1818
نظرات شما

نظرات خود را ثبت کنید...