چگونه 6 مسئله برنامه نویسی پویا را به روشی سیستماتیک حل کنیم

عکس پروفایل نویسنده

@yourdevopsguyپسر DevOps شما

مهندس نرم افزار: قبلا در آمازون و اکنون در eBay. گواهینامه حرفه ای ابر ابر

در این مقاله ، من مقدمه ای در مورد برنامه نویسی پویا با چندین مثال برای شما آورده ام. در اینجا من 6 مشکل برنامه نویسی پویا را حل می کنم تا به شما نشان دهم چگونه به آنها نزدیک شوید.

یک ربات در گوشه بالا سمت چپ a قرار دارد

m x n

توری.

ربات فقط در هر زمان از زمان می تواند به سمت پایین یا راست حرکت کند. این ربات در تلاش است تا به گوشه پایین سمت راست شبکه برسد.

چند مسیر منحصر به فرد ممکن وجود دارد؟

راه حل

با توجه به اینکه ربات فقط می تواند به سمت راست یا پایین حرکت کند ، می توانیم به موقعیت برسیم

{m,n}

(گوشه پایین سمت راست) به دو روش مختلف:

  • رفتن به راست از
    (m, n -1)
  • پایین رفتن از
    (m -1, n)

بنابراین ، تعداد کل مسیرها به

(m, n)

تعداد مسیرهای رسیدن به خواهد بود

(m, n-1)

بعلاوه تعداد مسیرها به

(m-1, n)

. این دو مسئله جدید فقط مواردی از مسئله اصلی است. بنابراین می توانیم از بازگشت برای تولید راه حل استفاده کنیم.

بیا زنگ بزنیم

f(m,n)

تعداد راههای رسیدن به موقعیت (m ، n).

f(0,0) = 1
f(m,n) = 0 if n or m are outside the grid
f(m,n) = f(m-1, n) + f(m, n-1)

راه حل بازگشتی

خط 5 تعداد مسیرها را برای رسیدن به هر موقعیت در ستون یا ردیف اول شبکه نشان می دهد (فقط با رفتن به تمام مسیرها می توانیم به آنها برسیم …

سئو PBN | خبر های جدید سئو و هک و سرور