Python برنامج لإيجاد مضروب الرقم

⚡ ملخص ذكي

مضروب عدد في Python هو حاصل ضرب كل عدد صحيح موجب حتى ذلك العدد. Python يتم حسابه باستخدام حلقة for، أو فحص if-else، أو الاستدعاء الذاتي، أو دالة math.factorial() المدمجة.

  • 🔘 حلقة For: قم بالتكرار من 1 إلى n، واضرب ناتجًا متكررًا لبناء المضروب.
  • ☑️ شرط الشرط (إذا-وإلا): يجب الحذر من المدخلات السالبة، وإرجاع خطأ لأن المضروب يحتاج إلى أعداد صحيحة غير سالبة.
  • ✅ العودية: تستدعي الدالة نفسها بالقيمة n-1 حتى تصل إلى الحالة الأساسية وهي 0.
  • 🧪 math.factorial(): استورد الرياضيات واستدعِ دالة مدمجة واحدة للحصول على نتيجة سريعة ومُختبرة.
  • 🛠️ الحالات الحدية: مضروب العدد صفر يساوي 1، و Python يتعامل مع النتائج الكبيرة جدًا بشكل أصلي.
  • 🤖 الذكاء الاصطناعي وعلم البيانات: تستخدم الاحتمالات والتوافقية ومكتبات مثل SciPy المضروب على المصفوفات.

Python برنامج لإيجاد مضروب الرقم

توضح الأقسام التالية أربع طرق لحساب المضروب في Python — حلقة for، ونسخة if-else، والتكرار، و math.factorial() — بالإضافة إلى الخوارزمية الأساسية والتطبيقات.

مضروب عدد باستخدام للحلقة

لنأخذ مثالاً على Python كود يأخذ عددًا صحيحًا موجبًا كمدخل لحساب مضروب الأعداد الصحيحة الموجبة. في الكود التالي، تبدأ الحلقة بالعدد واحد، ثم تضرب في كل عدد يسبق العدد المطلوب حساب مضروبه.

ما يلي Python يوضح الكود دالة المضروب باستخدام حلقة تكرارية.

Python رمز:

print ("Input a number")
factorialIP = int (input ())
ffactor23 = 1
for j in range (1, factorialIP+1):
   ffactor23 = ffactor23 * j
print ("The factorial of the number is “, ffactor23)

الإخراج:

Input a number
4
The factorial of the number is 24

ما سبق Python يستقبل البرنامج أعدادًا موجبة فقط، ولا يتحقق من الأعداد السالبة. في هذا البرنامج، يكون العامل 1 عندما تكون قيمة j تساوي 1. وعندما تكون j تساوي 2، يُضرب العامل في 2، ويستمر البرنامج في هذه العملية حتى تصل قيمة j إلى 4، ليصل الناتج إلى 24.

مضروب الرقم باستخدام عبارة IF…else

ما يلي Python يوضح هذا الكود دالة المضروب باستخدام دالة. على عكس نسخة الحلقة، يتحقق هذا البرنامج أيضًا من الأعداد السالبة قبل حساب المضروب.

في السابق Python في الكود، لم يتم تطبيق التحقق من الأرقام السالبة، مما يجعل دالة المضروب غير مكتملة وعرضة لإصدار رسالة خطأ إذا تم إدخال أرقام سالبة كمدخلات.

في الكود المعطى، تبدأ الحلقة بواحد وتضرب في كل رقم سابق، كما تتحقق الدالة أيضًا من صحة المدخلات للأرقام السالبة.

Python رمز:

print("Enter a number for the purpose of determining factorial")
factorialIP = int(input())
def factorial(factorialIP):
   if factorialIP < 0:
     print ('Factorial does not exist')
     factor=0
     return factor
   elif factorialIP == 0:
     factor=1
     return factor
     print(factor)
   else:
     factor = 1
     for j in range (1, factorialIP+1):
       factor = factor * j
     return factor
  print ("The factorial of the number is ", factorial(factorialIP))

الإخراج:

1) Enter a number to determine factorial
   -4
   Factorial does not exist
   The factorial of the number is 0

2) Enter a number to determine factorial
   4
   Factorial does not exist
   The factorial of the number is 24

هذه Python يقبل البرنامج الأرقام الموجبة ويضيف فحصًا للأرقام السالبة باستخدام عبارة if و else، ويعيد بشكل صحيح 24 عند إدخال 4.

مضروب عدد باستخدام العودية

ما يلي Python يوضح الكود دالة المضروب باستخدام الاستدعاء الذاتي. في هذا المثال، تقوم دالة استدعاء ذاتي تأخذ عددًا صحيحًا موجبًا كمدخل بتحديد قيمة المضروب.

Python رمز:

print("Enter a number for the purpose of determining factorial")
def factorial(num2):
  if num2 < 0:
    return 'Factorial does not exist'
  elif num2 == 0:
     return 1
  else:
     return num2 * factorial(num2-1)
number1 = int(input())
print("The factorial of the number is",factorial(number1))

الإخراج:

Enter a number for the purpose of determining factorial
4
The factorial of the number is 24

يمكن شرح الاستدعاء الذاتي كمفهوم يتم فيه استدعاء الدالة في Python يمكن للوحدة استدعاء نفسها مرارًا وتكرارًا. وهي تعمل حتى Python يتم استيفاء الشرط الموجود في الوحدة، حيث يتم تمرير قيمة إلى الدالة المستدعاة.

في ما سبق Python في البرنامج، تستمر الدالة def factorial في استدعاء نفسها بشكل متكرر حتى يصل العدد إلى الصفر. بمجرد أن يصل العدد إلى الصفر، تُهيئ الدالة العدد إلى 1، مما ينهي الاستدعاء المتكرر.

مضروب عدد باستخدام math.factorial()

ما يلي Python يوضح الكود دالة المضروب باستخدام math.factorial()، والتي يمكن استخدامها عن طريق استيراد وحدة الرياضيات.

لا تقبل هذه الدالة الأعداد الصحيحة السالبة، وتُصدر خطأ في القيمة عند إدخال أرقام عشرية.

Python رمز:

print("Enter a number for computing factorial")
import math
number1 = int(input())
print("The factorial is as computed comes out to be ")
print(math.factorial(number1))

الإخراج:

Enter a number for computing factorial
4
The factorial, as computed, comes out to be 24

خوارزمية البرنامج العاملي في Python

دعونا نأخذ مثالا يوضح مفهوم المضروب.

لتحديد مضروب العدد 5، اتبع الخطوات التالية:

5! = 5 x (5-1) x (5-2) x (5-3) x (5-4)
5! =120

هنا، 5! يتم التعبير عنها بـ 120.

يساعد الرسم البياني التالي في فهم خوارزمية حساب العامل، وفي هذه الحالة، دعونا نأخذ مثالاً على العامل 4!

خوارزمية لبرنامج العوامل

الخوارزمية مع مثال مصور للعامل 4!

تطبيق العامل في Python

يحتوي مضروب العدد على مستوى واسع من التطبيقات في الرياضيات. فيما يلي تطبيقات مهمة لـ Python:

  • Python يساعد في الحساب، متبوعًا بطباعة المضروب بطريقة أسرع وأكثر كفاءة من لغات البرمجة الأخرى المتاحة.
  • استخدم Python الكود سهل الفهم ويمكن تكراره عبر منصات مختلفة، والمضروب Python يمكن دمج البرنامج في العديد من مهام بناء النماذج الرياضية.

الأسئلة الشائعة

مضروب العدد الصحيح غير السالب n، ويكتب n!، هو حاصل ضرب جميع الأعداد الصحيحة الموجبة من 1 إلى n. على سبيل المثال، 5! يساوي 5 × 4 × 3 × 2 × 1 = 120.

بحسب التعريف، فإن مضروب العدد 0 هو 1. كل طريقة - حلقة، أو استدعاء ذاتي، أو math.factorial() - تُرجع 1 للإدخال 0، وهذه الحالة الأساسية توقف أيضًا الاستدعاءات المتكررة.

نعم. Python تتمتع الأعداد الصحيحة بدقة غير محدودة، لذا فإن الدالة math.factorial(100) تُرجع نتيجة مكونة من 158 رقمًا دون حدوث تجاوز. يزداد حجم الذاكرة ووقت التشغيل فقط مع حجم المُدخل.

A لحلقة يُفضّل استخدام التكرار عادةً. كلاهما يعملان في زمن O(n)، لكن الحلقة تستخدم ذاكرة ثابتة، بينما يُضيف التكرار مكدس استدعاءات يمكن أن يصل إلى Pythonحد التكرار.

كل طريقة قياسية تحتاج إلى n-1 عملية ضرب، لذا فإن التعقيد الزمني هو O(n). تحافظ الحلقة التكرارية على مساحة O(1)، بينما يستخدم الاستدعاء الذاتي مساحة O(n) لمكدس الاستدعاءات.

يمكن أن يتجاوز التكرار العميق Pythonيبلغ الحد الافتراضي للدالة حوالي 1000 استدعاء. استخدم حلقة تكرارية أو دالة math.factorial() للمدخلات الكبيرة، أو ارفع الحد الأقصى باستخدام sys.setrecursionlimit().

نعم. تظهر المضروبية في التوافقية وتوزيعات الاحتمالات مثل توزيع بواسون والتوزيع ذي الحدين، والتي تُشكل أساس العديد من نماذج التعلم الآلي. كما توفر مكتبات علوم البيانات أدوات مساعدة لحساب المضروبية باستخدام المتجهات للمصفوفات.

نعم. يقوم برنامج GitHub Copilot ومساعدو الذكاء الاصطناعي المشابهون بإنشاء نسخ من التكرار، والتكرارية، و math.factorial() بناءً على طلب قصير. راجع دائمًا اقتراح شرط التحقق من الأعداد السالبة وحالة الأساس 0!.

تلخيص هذه التدوينة بـ: