إعلان
حول مثال المعادلة 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
أضف إجابة
يجب تسجيل الدخول حتى تتمكن من إضافة إجابة أو رد.
روابط مهمة
حقوق النشر
جميع الحقوق محفوظة لموقع هرمش. لا يسمح باستخدام الشروحات لأغراض تجارية، إجراء تعديل عليها، نشرها في موقع آخر، وضع الشروحات في تطبيق أو في كتاب إلا في حال أخذ موافقة صريحة من إدارة الموقع كما أن المحتوى مسجل بواسطة DMCA و في حال قيامك بمخالفة حقوق النشر سنضطر آسفين لاتخاذ الإجراءات اللازمة.