Learn Typing Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Computer Fundamentals English English Conversations Problem Solving

حول مثال المعادلة O(k^n)

في المثال التالي، هل المقصود بالكود return fibonacci(n-1) + fibonacci(n-2) هو جمع القيمة الموجودة في الباراميترات مثل مبدأ فايبوناتشي (Fibonacci).

أو استخدمته فقط + لكي تضيف دالة جنب دالة حتى يتم إرجاعها مرتين؟

// تعريف الدالة لا يحسب كخطوة
public int fibonacci(int n)
{
// الشرط بحد ذاته لا يحسب خطوة
if (n <= 0)
{
// كما قلنا سابقاً Big-O إرجاع القيمة يحسب خطوة واحدة و لكن عدد الخطوات غير مهم في تقييم الـ
return 0;
}
// الشرط بحد ذاته لا يحسب خطوة
if (n <= 2)
{
// كما قلنا سابقاً Big-O إرجاع القيمة يحسب خطوة واحدة و لكن عدد الخطوات غير مهم في تقييم الـ
return 1;
}
// كخطوتين return لنفسها ) سيتم حساب أمر الـ return كل مرة سيتم فيها إعادة استدعاء الدالة لنفسها, ( أي ستفعل
// n و السبب في ذلك أن كل عملية جمع سيتم إرجاعها تتطلب من الدالة أن تستدعي نفسها مرتين مضاعفة بقيمة
// O(k^n) بما أن الدالة ستعيد استدعاء نفسها كل مرة بمقدار ضعفين زيادة فإنه سيتم تمثيلها بـ
return fibonacci(n - 1) + fibonacci(n - 2);
}
// تعريف الدالة لا يحسب كخطوة public int fibonacci(int n) { // الشرط بحد ذاته لا يحسب خطوة if (n <= 0) { // كما قلنا سابقاً Big-O إرجاع القيمة يحسب خطوة واحدة و لكن عدد الخطوات غير مهم في تقييم الـ return 0; } // الشرط بحد ذاته لا يحسب خطوة if (n <= 2) { // كما قلنا سابقاً Big-O إرجاع القيمة يحسب خطوة واحدة و لكن عدد الخطوات غير مهم في تقييم الـ return 1; } // كخطوتين return لنفسها ) سيتم حساب أمر الـ return كل مرة سيتم فيها إعادة استدعاء الدالة لنفسها, ( أي ستفعل // n و السبب في ذلك أن كل عملية جمع سيتم إرجاعها تتطلب من الدالة أن تستدعي نفسها مرتين مضاعفة بقيمة // O(k^n) بما أن الدالة ستعيد استدعاء نفسها كل مرة بمقدار ضعفين زيادة فإنه سيتم تمثيلها بـ return fibonacci(n - 1) + fibonacci(n - 2); }

تعليقات 1

أضف تعليق

يجب تسجيل الدخول حتى تتمكن من إضافة تعليق أو رد.

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة