حول مثال المعادلة 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);
}

إجابات 1

أضف إجابة

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

الدورات

أدوات مساعدة

أقسام الموقع

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