54. مثال DP 2: الجدولة (Tabulation) (منهجية من الأسفل للأعلى)
الجدولة (Tabulation) هي تقنية برمجة ديناميكية من الأسفل للأعلى. بدلاً من البدء من الحل المطلوب (N) وتقسيمه بشكل عودي، نبدأ من حالة الأساس (0 أو 1) ونبني الحل بشكل تكراري باستخدام الحلقات.
مثال متتالية Fibonacci (باستخدام الجدولة)
- تهيئة جدول (مصفوفة) لتخزين حلول المشكلات الفرعية، عادةً حتى الهدف N.
- ملء حالات الأساس (على سبيل المثال،
dp[0]=0،dp[1]=1). - حساب القيم المتبقية بشكل تكراري بناءً على القيم السابقة المخزنة.
python def fib_tabulation(n): if n <= 1: return n
dp = [0] * (n + 1)
dp[0] = 0
dp[1] = 1
# Iteratively build up the results
for i in range(2, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]
return dp[n]
غالباً ما تتجنب الجدولة النفقات العامة لاستدعاء الدالة الخاصة بالعودية، مما يوفر أحياناً ميزة سرعة صغيرة على التذكر.