کامپیوترها

برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله

Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving

دانلود کتاب Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving (به فارسی: برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله) نوشته شده توسط «Meenakshi – Kamal Rawat»


اطلاعات کتاب برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله

موضوع اصلی: کامپیوترها

نوع: کتاب الکترونیکی

ناشر: Notion Press

نویسنده: Meenakshi – Kamal Rawat

زبان: english

فرمت کتاب: PDF (قابل تبدیل به سایر فرمت ها)

سال انتشار: 2017

تعداد صفحه: 136

حجم فایل: 41.97 مگابایت

کد کتاب: 194655670X , 9781946556707

توضیحات کتاب برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله

من می خواستم 80مین ترم سری فیبوناچی را محاسبه کنم. من تابع بازگشتی شایع،
را نوشتم

int fib(int n){

بازگشت (1==n || 2==n) ? 1 : fib(n-1) + fib(n-2);

}

و منتظر نتیجه ماند من صبر می کنم … و منتظر … و منتظر …

با یک رم 8 گیگابایتی و پردازنده مرکزی i5 اینتل، چرا اینقدر طول می کشد؟ من روند را خاتمه دادم و سعی کردم ترم 40 را محاسبه کنم. حدود یک ثانیه طول کشید. من یک بررسی گذاشتم و وقتی متوجه شدم که تابع بازگشتی فوق در هنگام محاسبه ترم 40، 204,668,309 بار فراخوانی شده است، شوکه شدم.

بیش از 200 میلیون بار؟ آیا تماس های تابع یا کلاهبرداری برخی از دولت ها را گزارش می کند؟

راه حل برنامه نویسی پویا 100 ترم فیبوناچی را در کمتر از کسری از ثانیه با یک فراخوانی تک تابع محاسبه می کند که زمان خطی و حافظه اضافی ثابت را می گیرد.

یک راه حل بازگشتی، معمولاً نه همه موارد آزمایشی را در مسابقه کدنویسی قبول می کند و نه مصاحبه کننده را در مصاحبه با شرکت هایی مانند گوگل، مایکروسافت و غیره تحت تأثیر قرار می دهد.

سخت ترین سوالاتی که در مسابقات و مصاحبه ها پرسیده می شود، مربوط به برنامه نویسی پویا است. این کتاب برنامه نویسی پویا را به طور مستقیم مورد بررسی قرار می دهد. ابتدا مفاهیم را با مثال های ساده توضیح می دهد و سپس به مسائل پیچیده DP می پردازد.


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.

دانلود کتاب «برنامه نویسی پویا برای برنامه نویسی مصاحبه: رویکردی از پایین به بالا برای حل مسئله»

مبلغی که بابت خرید کتاب می‌پردازیم به مراتب پایین‌تر از هزینه‌هایی است که در آینده بابت نخواندن آن خواهیم پرداخت.

برای دریافت کد تخفیف ۲۰ درصدی این کتاب، ابتدا صفحه اینستاگرام کازرون آنلاین (@kazerun.online ) را دنبال کنید. سپس، کلمه «بلیان» را در دایرکت ارسال کنید تا کد تخفیف به شما ارسال شود.

دیدگاهتان را بنویسید