البرمجة الديناميكية (DP) هي تقنية برمجة لحل المشاكل حيث تتداخل حسابات مشاكلها الفرعية: تكتب برنامجك بطريقة تتجنب إعادة معالجة المشاكل التي تم حلها بالفعل. هذه التقنية ، عادة ما يتم تطبيقها بالاقتران مع المذكرات وهي تقنية التحسين حيث تقوم بتخزين النتائج المحسوبة مسبقًا ، وترجع النتيجة المخزنة مؤقتًا عند الحاجة إلى نفس الحساب مرة أخرى.
مثال على سلسلة فيبوناتشي التي تم تعريفها على النحو التالي:
التخزين المؤقت للحلول المحسوبة في جدول البحث ، والاستعلام عنها قبل الذهاب العودية سيتيح للبرنامج وقت تشغيل O (N).
#### معلومات اكثر:
[ما هي البرمجة الديناميكية على StackOverflow](https://stackoverflow.com/questions/1065433/what-is-dynamic-programming) [الفرق بين memoization و DP على StackOverflow](https://stackoverflow.com/questions/6184869/what-is-the-difference-between-memoization-and-dynamic-programming)