📺 قائمة تشغيل Recursion and Backtracking
🔗 شوف كل الدروس من هنا:
التكرار (Recursion) والتراجع (Backtracking) هما تقنيتان أساسيتان في البرمجة، وبيستخدموا لحل المشكلات اللي بتعتمد على تقسيمها لمشكلات أصغر أو استكشاف جميع الحلول الممكنة.
🔥 ليه نستخدم Recursion و Backtracking؟
- ✅ تبسيط حل المشكلات المعقدة – بتسمح لنا بتقسيم المشاكل الكبيرة إلى مشاكل أصغر وأسهل.
- ✅ التعامل مع المسائل التي تتطلب البحث في جميع الاحتمالات – زي إيجاد جميع الحلول الممكنة.
- ✅ حل مشاكل مثل الترتيب، البحث في المسافات، والاختيارات المنطقية.
🔹 Recursion (التكرار)
التكرار يعني أن دالة تستدعي نفسها لحل مشكلة أصغر حتى تصل إلى حالة أساسية توقف الاستدعاء.
على سبيل المثال، في حساب متتالية فيبوناتشي، نستدعي الدالة نفسها مرتين مع قيم أصغر حتى نصل إلى القيم الأساسية.
🔹 Backtracking (التراجع)
التراجع هو عملية استكشاف جميع الخيارات الممكنة لحل المشكلة، وإذا تم الوصول إلى حالة غير صالحة أو طريق مسدود، يتم التراجع عن القرار والانتقال إلى خيار آخر.
مثال شائع هو حل اللغز، مثل “مشكلة النحل” أو “مشكلة التوزيع على الشبكة” حيث يتم اختبار كل حل ممكن والتراجع عند الحاجة.
🔹 مثال على Recursion
#include <iostream>
using namespace std;
int factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
int main() {
int num = 5;
cout << "Factorial of " << num << " is " << factorial(num) << endl;
return 0;
}
🚀 فين بنستخدم Recursion و Backtracking؟
- 🏆 المسابقات البرمجة التنافسية.
- 🚀 حل مسائل البحث، مثل مسألة التوزيع على الشبكة.
- 🖥️ التعامل مع المشكلات التي تحتوي على العديد من الخيارات مثل اللغز أو الترتيب.
💬 شاركنا رأيك في التعليقات، ولو عندك أي استفسارات عن Recursion و Backtracking، اكتبها تحت! 👇