Theme
Primary Color

تقليل الحساب المتكرر بإستخدام Memoization

لما الدالة نقية ومكلفة ممكن تحفظ نتيجة المدخل اللي اتحسب بالفعل بدل تكراره

المثال بإستخدام Python 3 لتوضيح الفكرة ويمكن تطبيق نفس المبدأ في لغات تانية

المثال العملي

cache = {}
calls = 0
def square(number):
    global calls
    if number not in cache:
        calls += 1
        cache[number] = number * number
    return cache[number]

print(square(12))
print(square(12))
print(calls)

النتيجة

144
144
1

النتيجة اتحسبت مرة واتقرت من الكاش في المرة الثانية والتربيع هنا مجرد مثال صغير للفكرة

جرب بنفسك

استدع الدالة برقم تاني ثم فكر في حد أقصى للكاش لو المدخلات غير محدودة

programming شرح