توضیحات
I wanted to compute 80th term of the Fibonacci series. I wrote the rampant recursive function,
int fib(int n){
return (1==n || 2==n) ? 1 : fib(n-1) + fib(n-2);
}
and waited for the result. I wait and wait and wait
With an 8GB RAM and an Intel i5 CPU, why is it taking so long? I terminated the process and tried computing the 40th term. It took about a second. I put a check and was shocked to find that the above recursive function was called 204,668,309 times while computing the 40th term.
More than 200 million times? Is it reporting function calls or scam of some government?
The Dynamic Programming solution computes 100th Fibonacci term in less than fraction of a second, with a single function call, taking linear time and constant extra memory.
A recursive solution, usually, neither pass all test cases in a coding competition, nor does it impress the interviewer in an interview of company like Google, Microsoft, etc.
The most difficult questions asked in competitions and interviews, are from dynamic programming. This book takes Dynamic Programming head-on. It first explain the concepts with simple examples and then deep dives into complex DP problems.
————————————————————–
ترجمه ماشینی :
من می خواستم 80مین ترم سری فیبوناچی را محاسبه کنم. من تابع بازگشتی شایع، int fib(int n){ return (1==n || 2==n) نوشتم؟ 1 : fib(n-1) + fib(n-2); } \ و منتظر نتیجه ماند. من صبر می کنم و منتظر می مانم با یک رم 8 گیگابایتی و یک پردازنده مرکزی i5 اینتل، چرا اینقدر طول می کشد؟ من روند را خاتمه دادم و سعی کردم ترم 40 را محاسبه کنم. حدود یک ثانیه طول کشید. من یک بررسی گذاشتم و وقتی متوجه شدم که تابع بازگشتی فوق در هنگام محاسبه ترم 40، 204,668,309 بار فراخوانی شده است، شوکه شدم. بیش از 200 میلیون بار؟ آیا تماس های تابع یا کلاهبرداری برخی از دولت ها را گزارش می کند؟ راه حل برنامه نویسی پویا صدمین ترم فیبوناچی را در کمتر از کسری از ثانیه با یک فراخوانی تک تابع محاسبه می کند که زمان خطی و حافظه اضافی ثابت را می گیرد. یک راه حل بازگشتی، معمولاً نه همه تست ها را در مسابقه کدنویسی قبول می کند و نه مصاحبه کننده را در مصاحبه شرکت هایی مانند گوگل، مایکروسافت و غیره تحت تأثیر قرار می دهد. برنامه نویسی پویا این کتاب برنامه نویسی پویا را به طور مستقیم مورد بررسی قرار می دهد. ابتدا مفاهیم را با مثال های ساده توضیح می دهد و سپس به مسائل پیچیده DP می پردازد.
tag : دانلود کتاب برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله , Download برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله , دانلود برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله , Download Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving Book , برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله دانلود , buy برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله , خرید کتاب برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله , دانلود کتاب Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving , کتاب Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving , دانلود Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving , خرید Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving , خرید کتاب Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving ,

نقد و بررسیها
هنوز بررسیای ثبت نشده است.