مضروب الرقم هو مفهوم رياضي مهم. يمكنك استخدامه لإجراء التباديل والتركيبات ، وكتابة التعبيرات الأسية واللوغاريتمية ، وحساب الاحتمال.
يمكنك استخدامه للعثور على عدد من الطرق المختلفة التي يمكنك من خلالها تصميم ترتيب المقاعد ، أو اختيار القمصان التي تقضي عطلتك في جزر المالديف. لكن كيف يمكنك حساب مضروب الرقم؟
ما هو مضروب الرقم؟
مضروب الرقم الموجب هو حاصل ضرب جميع الأعداد الصحيحة الموجبة التي تقل عن أو تساوي قيمة الرقم نفسه. يشير الرقم المتبوع بعلامة تعجب (!) إلى مضروب الرقم. أنت تمثل مضروب خمسة كـ 5! واحسبه على النحو التالي:
5! = 5 * 4 * 3 * 2 * 1 = 120
هناك طريقة أخرى لتصورها وهي:
5! = 5 * 4! أين 4! = 4 * 3!, 3! = 3 * 2! وهكذا حتى تحصل على 1! = 1 * 0! وهو 1.
ستستخدم هذا المفهوم لبناء برنامج عاملي باستخدام مفهوم شائع يسمى العودية.
ما هي العودية؟
العودية هي عملية تستدعي فيها الوظيفة نفسها. تتمثل إحدى المزايا الرئيسية لهذه العملية في أنها تقسم مشكلة أكبر إلى أجزاء أصغر. هذا يجعل المشكلة أسهل في الحل.
يمكنك استخدام العودية لحل المشكلات المناسبة بثلاث خطوات سهلة:
- ابحث عن الحالة الأساسية: إذا كانت الوظيفة تستدعي نفسها دائمًا ، فستكون العملية لا نهائية. لمنع حدوث ذلك ، حدد الحالة الأساسية التي تصبح نقطة التوقف المنطقية لوظيفتك. على سبيل المثال ، في برنامج عاملي ، أوقف الحساب عند الصفر. تصبح هذه هي الحالة الأساسية للمشكلة.
- أوجد العلاقة بين المشكلة والمشكلات الفرعية: قسّم المشكلة الأكبر إلى مشكلة فرعية. على سبيل المثال ، تكمن المشكلة في إيجاد مضروب العدد خمسة. افترض أن لديك إجابة مضروب أربعة ، أي 24. كيف ستحصل على مضروب خمسة باستخدام 24؟ بضرب خمسة في نفسه. هذه هي العلاقة بين المشكلة والمشكلة الفرعية.
- قم بتعميم العلاقة الموجودة في الخطوة 2: الآن بعد أن أصبحت لديك العلاقة ، قم بتعميمها من حيث n. إذن ، مضروب العدد n هو حاصل ضرب n ومضروب n-1.
يمكنك استخدام هذا المفهوم ل أوجد مجموع n من الأعداد الطبيعيةوحساب GCD و LCM وسلسلة فيبوناتشي وفحص الأعداد الأولية.
الكود الزائف لوظيفة العوامل باستخدام العودية
هذا هو كيف تستخدم العودية واكتب الكود الزائف لبناء برنامجك بأي لغة. مع لغات مختلفة ، يتغير بناء الجملة والتنفيذ لكن المنطق يظل كما هو.
وظيفةحقيقة(ن)
إذا كان n == 0 ثم // الحالة الأساسية
يعود1
يعود n * حقيقة المكالمة (n - 1) // علاقة معممة
برنامج عامل في C
كانت لغة C هي أول لغة برمجة عالية المستوى ومستقلة عن النظام الأساسي. يحتوي على بناء جملة صارم ، وهو حساس لحالة الأحرف ، وينفذ التعليمات البرمجية بأسرع سرعة. إنها لغة برمجة إجرائية وبالتالي فإنك تعلن عن أي وظيفة أعلى ملف رئيسي وظيفة. إليك كيفية إنشاء برنامج عاملي باستخدام العودية في لغة سي:
يمكنك العثور على الكود المصدري الكامل لبرنامج العوامل باستخدام العودية في C و Java و Python في هذا مستودع جيثب.
- قم باستيراد ملف رأس الإدخال القياسي لعرض الإخراج على الشاشة.
#يشمل <stdio.h>
- تحديد الوظيفة حقيقة وتأخذ عددًا صحيحًا ن كحجة.
intحقيقة(int ن){
- اكتب الحالة الأساسية للدالة باستخدام لو بيان والتحقق من المساواة باستخدام ==. إذا كان n يساوي صفرًا ، فأعد واحدًا.
إذا (ن == 0)
يعود1; - اكتب المعادلة المعممة وأعد حاصل ضرب ن مع استدعاء وظيفي للمشكلة الفرعية ن -1.
يعود ن * حقيقة (ن - 1);
} - قم بتعريف الوظيفة الرئيسية وتهيئة متغير من نوع عدد صحيح لتخزين الرقم الذي تريد البحث عن عامل عاملي له.
intرئيسي(){
int عدد = 5; - عرض مضروب الرقم باستخدام printf () وظيفة. ٪د هو محدد التنسيق العشري. استخدم كل من محددات التنسيق لاستبداله بالرقم الذي تريد البحث عن عامل عاملي له والحصول على النتيجة عن طريق استدعاء الوظيفة.
printf ("عامل٪ d هو٪ d"، num ، fact (num)) ؛
يعود0;
}
برنامج عامل في جافا
Java هي لغة برمجة مترجمة وهي مستقلة عن النظام الأساسي. تقوم بتخزين كل التعليمات البرمجية داخل ملف فصل ويبدأ التنفيذ من رئيسي وظيفة. إنها حساسة لحالة الأحرف وصارمة في بناء الجملة. الكود أطول قليلاً ولكنه أسرع مقارنة ببايثون. إليك كيفية إنشاء برنامج عاملي باستخدام العودية في Java:
- حدد الفئة الرئيسية.
فصلرئيسي{
- قم بتعريف دالة ثابتة بنوع الإرجاع int الذي يقبل متغير n من نوع عدد صحيح. لقد أعلنت عن طريقة ثابتة لأن الطريقة الرئيسية في Java تم إعلانها أيضًا على أنها ثابتة. بالإضافة إلى ذلك ، لا يمكنك استدعاء أسلوب غير ثابت من مثيل ثابت.
ثابتةintحقيقة(int ن){
- اكتب الحالة الأساسية للدالة باستخدام لو بيان والتحقق من المساواة باستخدام ==. إذا كان n يساوي صفرًا ، فأعد واحدًا.
إذا (ن == 0)
يعود1; - اكتب المعادلة المعممة وأعد حاصل ضرب ن مع استدعاء وظيفي للمشكلة الفرعية ن -1.
يعود ن * حقيقة (ن - 1);
} - قم بتعريف الوظيفة الرئيسية في Java. قم بتعريف معدّل الوصول كـ عام، لذلك يمكن الوصول إليها من قبل جميع الفئات والطرق الأخرى. تعلن أن الوظيفة الرئيسية هي ثابتة حتى يتمكن المترجم من استدعاؤه دون إنشاء مثيل للفئة. نوع الإرجاع هو فارغ، ويقبل الحجج من النوع خيط. قم بتخزين الرقم الذي تريد البحث عن معامله.
عامثابتةفارغرئيسي(سلسلة [] args){
int عدد = 5; - استخدم ال println () طريقة ، مثيل PrintStream الفئة المحددة في نظام فئة لعرض مضروب الرقم.
System.out.println ("عامل " + الأسطوانات + " يكون " + حقيقة (عدد)) ؛
}
}
برنامج عاملي في بايثون
كتابة التعليمات البرمجية في Python سهلة وممتعة للغاية. نظرًا لأنها لغة مفسرة مستقلة عن النظام الأساسي ، فلا يتعين عليك التصريح عن نوع بيانات المتغيرات. يمكنك أيضًا تجنب الاضطرار إلى التصريح عن الفئات واستيراد المكتبات لمثل هذا البرنامج البسيط. الملعب جاهز لبدء البرمجة.
بناء الجملة أسهل ، مع طول رمز صغير ولكن يستغرق تنفيذه وقتًا أطول قليلاً من اللغات الأخرى. إليك كيفية إنشاء برنامج عاملي باستخدام العودية في بايثون:
- تحديد حقيقة الوظيفة التي تقبل كحجة n.
defحقيقة(ن):
- اكتب الحالة الأساسية للدالة باستخدام لو بيان والتحقق من المساواة باستخدام ==. إذا كان n يساوي صفرًا ، فأعد واحدًا.
إذا كانت n == 0:
يعود1 - اكتب المعادلة المعممة وأعد حاصل ضرب ن مع استدعاء وظيفي للمشكلة الفرعية ن -1.
يعود ن * حقيقة (ن-1)
- قم بتخزين الرقم الذي تريد البحث عنه في عامليته وعرضه باستخدام بيان الطباعة.
عدد = 5 ؛
مطبعة("عامل"، الأسطوانات ، "يكون"، حقيقة (عدد))
هناك العديد من تطبيقات العودية
العودية هي طريقة فعالة لحل المشاكل. إنه جوهر الذكاء الاصطناعي وله استخدامات واقعية في ألعاب الألغاز مثل الشطرنج أو Sudoku.
إنها أيضًا طريقة فعالة لفرز هياكل البيانات مثل شجرة أو خوارزميات الفرز مثل الفرز السريع ودمج الفرز. يمكنك أيضًا استخدام العودية في خوارزميات البحث مثل البحث الثنائي والتعبيرات الرياضية مثل سلسلة فيبوناتشي والمزيد.