منو سایت

  • خانه
  • وبلاگ
  • چگونه فاکتوریل یک عدد را در پایتون محاسبه کنیم؟

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

 تاریخ انتشار :
/
  وبلاگ
چگونه فاکتوریل یک عدد را در پایتون محاسبه کنیم؟

یافتن فاکتوریل یک عدد نقش مهمی در تجزیه و تحلیل داده ها و سایر تحلیل های ریاضی در پایتون دارد. در این مقاله نحوه محاسبه فاکتوریل در پایتون را به سه روش مختلف به شما آموزش می دهیم، اما قبل از اینکه به نحوه محاسبه فاکتوریل در پایتون بپردازیم، ابتدا باید ببینیم که مفهوم فاکتوریل در دنیای ریاضیات چیست.

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

در ریاضیات فاکتوریل عددی است که در تمام اعداد طبیعی قبل از آن ضرب شود. فاکتوریل با “!” نشان داده شده است. بنابراین n فاکتوریل حاصل ضرب n برابر عدد طبیعی اصلی است و به صورت نمایش داده می شود! ن.مثلا 5 فاکتوریل یا علمی! 5 یعنی اعداد 1 تا 5 باید در یکدیگر ضرب شوند. اگر اعداد را از 1 به 5 ضرب کنیم، مقدار پنج فاکتوریل به دست می آید که 120 می شود. البته توجه داشته باشید که محاسبات فاکتور فقط روی اعداد مثبت قابل انجام است و نمی توان از اعداد منفی استفاده کرد. به علاوه ضریب صفر برابر با یک است.

برنامه فاکتورینگ پایتون

برای نوشتن یک برنامه محاسبه فاکتوریل در پایتون، باید از رویکرد الگوریتم فاکتور استفاده کنیم و مراحل را گام به گام دنبال کنیم تا تصویر واضحی داشته باشیم.

ابتدا باید یک عدد صحیح مثبت از کاربر گرفته شود و در متغیر n قرار گیرد.

این عدد را در متغیر فاکتور قرار دهید.

شمارنده برای شمارش از 1 تا n استفاده می شود. این شمارنده برای افزایش تعداد ورودی ها استفاده می شود.

حال مقدار متغیر عامل باید در متغیر i ضرب شود و نتیجه در فاکتوریل باشد.

اگر i کمتر از n باشد، باید دو بار به مرحله 4 برگردیم.

خروجی محاسبه شده یا فاکتوریل n نمایش داده می شود.

اجرای کد کامل شده است.

همانطور که می بینید نوشتن یک الگوریتم کار برنامه نویسان را بسیار ساده می کند و خیلی بهتر است که از ابتدا به سراغ کدنویسی بروید. در اینجا الگوریتم محاسبه فاکتورهای عددی پیچیده نیست. اکنون باید نحوه تبدیل الگوریتم به برنامه با استفاده از زبان برنامه نویسی پایتون را بررسی کنیم.

راه های مختلفی برای رمزگذاری برنامه محاسبه فاکتور در پایتون وجود دارد. پرکاربردترین روش ها در این زمینه به شرح زیر است:

از حلقه for استفاده کنید

از تابع بازگشتی استفاده کنید

با استفاده از تابع عامل کتابخانه ریاضی

روش اول: ضریب پایتون را با حلقه for محاسبه کنید

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

number = int(input("Enter an integer number: "))

factorial = 1

پس از نوشتن کد بالا، به حلقه for نیاز داریم تا از 1 به یک عدد اسکرول شود. توجه داشته باشید که تمام اعداد کمتر از عدد در این چرخه شمارش از یک به خود عدد ضرب می شوند و نتیجه در متغیر عامل است. در اینجا نحوه نوشتن یک حلقه تکرار آمده است:

...

for i in range(1, number+1):

    factorial = factorial * i

مشابه مراحل ذکر شده در قسمت Function of Algorithm، اکنون باید مقدار فاکتوریل محاسبه شده در متغیر فاکتور چاپ شود. کدهای زیر برای فاکتورسازی شماره دریافتی از کاربر استفاده می شود:

print("The factorial of {} is: {}".format(number, factorial))

برای درک بهتر و جلوگیری از سردرگمی و ابهام، قطعه محاسبه کد فاکتور پایتون به شرح زیر است:

number = int(input("Enter an integer number: "))

factorial = 1

for i in range(1, number+1):

    factorial = factorial * i

print("The factorial of {} is: {}".format(number, factorial))

حال برای تست کدهای فوق ضریب شماره 14 به عنوان مثال محاسبه می شود:

please Enter integer number: 14

The factorial of 14 is: 87178291200

روش دیگر برای محاسبه فاکتوریل در پایتون استفاده از توابع بازگشتی است.

روش 2: محاسبه فاکتوریل در پایتون با تابع بازگشتی

علاوه بر چرخه تکرار، تابع بازگشتی را می توان برای محاسبه فاکتور در پایتون استفاده کرد. توابع بازگشتی توابعی هستند که برای اجرای بدون نقص باید به طور مداوم فراخوانی شوند. این تماس های مداوم تا زمانی که برنامه به پایه تابع برسد ادامه می یابد. گاهی اوقات از توابع بازگشتی برای محاسبه دنباله های ریاضی یا حل مسائل ریاضی استفاده می شود، زیرا فرمول خاصی وجود دارد که برای محاسبه پاسخ یک مسئله استفاده می شود.

به طور کلی با استفاده از روش بازگشتی، توابع به گونه ای طراحی می شوند که با هر فراخوانی مشکل به حداقل می رسد تا در نهایت به حالت پایه برسد. سپس تابع فوق به جایگزینی تدریجی پاسخ های دریافتی در ارتباط، به پاسخ اصلی تکلیف برمی گردد. برای پیاده سازی تابع محاسبه فاکتوریل بازگشتی در پایتون، ابتدا باید یک تابع برای آن تعریف شود. تابع فاکتور با استفاده از کد زیر تعریف می شود:

def factorial(n):

    if n == 0:

        return 1

توجه داشته باشید که در تابع بالا یک شرط با استفاده از عملگر If نوشته می شود. اگر مقدار دریافت شده توسط کاربر (متغیر n) صفر باشد، این عملگر شرطی مقدار یک را در خروجی برمی گرداند. همانطور که گفته شد ضریب صفر برابر با یک است. حالا بعد از عبارت if باید شرط دیگری اضافه شود. این شرط زمانی اعمال می شود که عدد دریافتی توسط کاربر مقداری غیر از صفر باشد. کدهای مربوطه به شرح زیر است:

def factorial(n):

    if n == 0:

        return 1

    else:

        return n * factorial(n-1)

نکته مهمی که در مورد تابع فوق باید به آن توجه کرد این است که پس از دریافت عدد از این تابع، تا زمانی که تابع به مقدار یک برسد، به عقب و در داخل برنامه فراخوانی می شود. وقتی برنامه به پایه تابع بازگشتی یعنی عدد 1 رسید، با جایگزین کردن هر پاسخ با تابع قبلی، پاسخ اصلی به دست می آید. اکنون با استفاده از کدهای عددی بالا توسط کاربر دریافت می شود:

...

number = int(input("please Enter integer number: "))

result = factorial(number)

print("The factorial of {} is: {}".format(number, result))

برنامه کامل محاسبه فاکتورها در پایتون با استفاده از تابع بازگشتی را می توان به صورت زیر نوشت:

def factorial(n):

    if n == 0:

        return 1

    else:

        return n * factorial(n-1)

number = int(input("please Enter integer number: "))

result = factorial(number)

print("The factorial of {} is: {}".format(number, result))

به عنوان مثال، خروجی محاسبه ضریب در پایتون با استفاده از تابع بازگشتی 5 به صورت زیر است:

please Enter integer number: 5

The factorial of 5 is: 120

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

ما می توانیم محاسبات فاکتوریل را در پایتون با استفاده از یک ماژول ریاضی قدرتمند پایتون به نام Math انجام دهیم. کتابخانه ریاضی پایتون شامل طیف گسترده ای از روش های عملی برای انجام توابع ریاضی است. به عنوان مثال، می توان از کتابخانه ریاضی برای تولید اعداد تصادفی استفاده کرد. البته ذکر این نکته ضروری است که قبل از استفاده از ماژول ریاضی پایتون باید آن را وارد پروژه کنید. سپس مقدار عامل عدد حاصل را می توان با استفاده از تابع فاکتور از کتابخانه ریاضی پایتون محاسبه کرد. برای محاسبه ضریب در پایتون با استفاده از کتابخانه ریاضی، موارد زیر را انجام می دهیم:

# Python code to demonstrate math.factorial()
import math

چاپ (“فاکتوریل 23 است:”، پایان = “”)
چاپ (ریاضی. فاکتوریل (23))
خروج:
ضریب 23: 25852016738884976640000

 

حال اگر بخواهیم یک مقدار منفی مانند -5 محاسبه کنیم، این بار پایتون پیغام خطا را نمایش می دهد زیرا همانطور که اشاره کردیم امکان محاسبه مقدار منفی به صورت فاکتوریل وجود ندارد.

# Python code to demonstrate math.factorial()

# Exceptions ( negative number )

import math

  print ("The factorial of -5 is : ",end="")

# raises exception

print (math.factorial(-5))

The factorial of -5 is :

Runtime Error :

Traceback (most recent call last):

  File "/home/f29a45b132fac802d76b5817dfaeb137.py", line 9, in

    print (math.factorial(-5))

ValueError: factorial() not defined for negative values

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

راه دیگر برای حل این مشکل قرار دادن یک عبارت شرطی در ابتدای برنامه محاسبه ضریب برای تایید عدد دریافتی توسط کاربر است. این شرایط به دلیل مثبت یا منفی بودن عدد وارد شده توسط کاربر است.

ما کدهای بازیابی ویرایش شده را برای هر یک از روش های محاسبه فاکتور پایتون بررسی می کنیم. در همه این کدها قبل از محاسبه ضریب در پایتون، اگر عدد وارد شده توسط کاربر منفی نباشد، با عبارت شرطی بررسی می شود. کدهای فاکتورسازی ویرایش شده در پایتون با استفاده از حلقه for به صورت زیر بازنویسی می شوند.

def calculate_factorial(number):

                if number == 1:

                                return number

                else:

                                return number * calculate_factorial(number - 1)

اکنون برنامه ویرایش شده را به صورت زیر فراخوانی می کنیم:

number = 17

fact = calculate_factorial(number)

print("The factorial of {} is {}.".format(number, str(fact)))

نتیجه قطعه کد بالا به شرح زیر است:

Our code returns: The factorial of 17 is 355687428096000.

 

منابع:

https://www.tutorialspoint.com/factorial-in-python

https://www.geeksforgeeks.org/factorial-in-python/

https://careerkarma.com/blog/python-factorial/

 

چگونه فاکتوریل یک عدد را در پایتون محاسبه کنیم؟ برای اولین بار در علم و فناوری در صبح. به نظر می رسد.