طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 101 · تركيب البيانات والخوارزميات
تقييم الدرس 21

التخزين المؤقت والبرمجة الديناميكية

أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس

أسئلة التقييم

تقييم الدرس 21: التخزين المؤقت والبرمجة الديناميكية. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) ماذا يطبع البرنامج؟
main.py
a, b = 0, 1for _ in range(6):    a, b = b, a + bprint(a)
2) المزخرف الجاهز للتخزين المؤقت في بايثون:
3) تعقيد fib مع التخزين المؤقت:
4) عدد طرق صعود 4 درجات (درجة أو درجتين):
5) ذاكرة fib بمتغيرين a و b فقط:

2السؤال الثاني: صح أم خطأ

1) التخزين المؤقت يقايض الذاكرة بالزمن.
الصواب: صح
2) البرمجة الديناميكية تنفع لكل مسألة.
الصواب: خطأ
3) الجدولة تبني الحل من المسائل الصغيرة إلى الكبيرة.
الصواب: صح
4) فيبوناتشي العودي الساذج يحسب كل قيمة مرة واحدة.
الصواب: خطأ

3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة

1) المسائل الصغيرة التي تتكرر تسمى مسائل فرعية .
الإجابة: متداخلة
2) في جدول مسارات الشبكة: dp[r][c] = dp[r-1][c] + .
الإجابة: dp[r][c-1]
3) بناء الجدول من الأسفل بحلقة يسمى .
الإجابة: الجدولة

4السؤال الرابع: أسئلة عملية

1) ما ناتج البرنامج؟

main.py
from functools import lru_cachecalls = 0@lru_cache(maxsize=None)def f(n):    global calls    calls += 1    if n < 2:        return n    return f(n - 1) + f(n - 2)print(f(10), calls)
الناتج الصحيح:
Shell×
55 11
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس