تالار گفتمان مانشت
بزرگترین زیر دنباله مشترک(علوم کامپیوتر ۹۱) - نسخه‌ی قابل چاپ

بزرگترین زیر دنباله مشترک(علوم کامپیوتر ۹۱) - msalehi1991 - 18 بهمن ۱۳۹۲ ۰۳:۳۹ ق.ظ

سلامSmile
دوستان میشه بگین این سوال چطوری حل میشه؟Huh
جواب گزینه ۱

تشکرRolleyes

RE: بزرگترین زیر دنباله مشترک(علوم کامپیوتر ۹۱) - mahsalove - 18 بهمن ۱۳۹۲ ۰۲:۱۵ ب.ظ

سلام...
بررسی اینکه یک دنباله به طول n زیر دنباله یک دنباله به طول m است از مرتبه n+m است.
برای یافتن Max که B^i زیر دنباله A باشد واضح است که i نمی تواند از n/mبیشتر باشه پس بیشترین مقدار i برابر n/m است حالا باید چک کنیم برای i=n/m جواب می دهد یا نه!
ابتدا i را برابر ۱/۲*n/m قرار می دهیم یعنی نصف n/m اگر B^i زیر دنباله A باشد شبیه جستجوی دودویی مقادیر کوچکتر از سقف n/m را نادیده بگیرید و اگر B^i زیر دنباله A نبود مقادیر بیشتر از ۱/۲ سقف n/m را نادیده بگیرید و با روش دودویی این عمل را انجام دهید تعداد بررسی ها برای یافتن Max(i برابر سقف log n/m است پس زمان اجرا برابر
n+m*logn/m است که چون n از m بیشتر است جواب n*logn/mمی شه!

یعنی در واقع باید بیاییم یه چیزی شبیه جستجوی دودویی هی قسمت های نصف سقف n/m را در داخل A در نظر گرفته هر قسمت را بررسی تا ببینیم آیا زیر دنباله هست یا نه و اون قسمت را اگر زیر دنباله بود که در مرحله بعدی در نظر بگیریم و اگر نبود در نظرش نگیریم و چون باید n بار logn/m را هی بررسی کنیم ج می شه nlogn/m ....

موفق باشیدBig Grin
دهنم سرویس شد تا فهمیدم راه حلش چی می گهBlush

RE: بزرگترین زیر دنباله مشترک(علوم کامپیوتر ۹۱) - Riemann - 18 بهمن ۱۳۹۲ ۰۲:۴۳ ب.ظ

(۱۸ بهمن ۱۳۹۲ ۰۲:۱۵ ب.ظ)mahsalove نوشته شده توسط:  سلام...
بررسی اینکه یک دنباله به طول n زیر دنباله یک دنباله به طول m است از مرتبه n+m است.
برای یافتن Max که B^i زیر دنباله A باشد واضح است که i نمی تواند از n/mبیشتر باشه پس بیشترین مقدار i برابر n/m است حالا باید چک کنیم برای i=n/m جواب می دهد یا نه!
ابتدا i را برابر ۱/۲*n/m قرار می دهیم یعنی نصف n/m اگر B^i زیر دنباله A باشد شبیه جستجوی دودویی مقادیر کوچکتر از سقف n/m را نادیده بگیرید و اگر B^i زیر دنباله A نبود مقادیر بیشتر از ۱/۲ سقف n/m را نادیده بگیرید و با روش دودویی این عمل را انجام دهید تعداد بررسی ها برای یافتن Max(i برابر سقف log n/m است پس زمان اجرا برابر
n+m*logn/m است که چون n از m بیشتر است جواب n*logn/mمی شه!

یعنی در واقع باید بیاییم یه چیزی شبیه جستجوی دودویی هی قسمت های نصف سقف n/m را در داخل A در نظر گرفته هر قسمت را بررسی تا ببینیم آیا زیر دنباله هست یا نه و اون قسمت را اگر زیر دنباله بود که در مرحله بعدی در نظر بگیریم و اگر نبود در نظرش نگیریم و چون باید n بار logn/m را هی بررسی کنیم ج می شه nlogn/m ....

موفق باشیدBig Grin
دهنم سرویس شد تا فهمیدم راه حلش چی می گهBlush

وقتی که ما میخواهیم برای [tex]i = \frac{n}{2m}[/tex] چک کنیم که ایا [tex]B^i[/tex] یک زیر دنباله هست یا نه یه هزینه ای باید بدیم که توی تحلیل شما تی پاراگراف اول این هزینه حساب نشده و یه جای کار میلنگه!

RE: بزرگترین زیر دنباله مشترک(علوم کامپیوتر ۹۱) - msalehi1991 - 18 بهمن ۱۳۹۲ ۰۳:۲۷ ب.ظ

(۱۸ بهمن ۱۳۹۲ ۰۲:۴۳ ب.ظ)Riemann نوشته شده توسط:  
(18 بهمن ۱۳۹۲ ۰۲:۱۵ ب.ظ)mahsalove نوشته شده توسط:  سلام...
بررسی اینکه یک دنباله به طول n زیر دنباله یک دنباله به طول m است از مرتبه n+m است.
برای یافتن Max که B^i زیر دنباله A باشد واضح است که i نمی تواند از n/mبیشتر باشه پس بیشترین مقدار i برابر n/m است حالا باید چک کنیم برای i=n/m جواب می دهد یا نه!
ابتدا i را برابر ۱/۲*n/m قرار می دهیم یعنی نصف n/m اگر B^i زیر دنباله A باشد شبیه جستجوی دودویی مقادیر کوچکتر از سقف n/m را نادیده بگیرید و اگر B^i زیر دنباله A نبود مقادیر بیشتر از ۱/۲ سقف n/m را نادیده بگیرید و با روش دودویی این عمل را انجام دهید تعداد بررسی ها برای یافتن Max(i برابر سقف log n/m است پس زمان اجرا برابر
n+m*logn/m است که چون n از m بیشتر است جواب n*logn/mمی شه!

یعنی در واقع باید بیاییم یه چیزی شبیه جستجوی دودویی هی قسمت های نصف سقف n/m را در داخل A در نظر گرفته هر قسمت را بررسی تا ببینیم آیا زیر دنباله هست یا نه و اون قسمت را اگر زیر دنباله بود که در مرحله بعدی در نظر بگیریم و اگر نبود در نظرش نگیریم و چون باید n بار logn/m را هی بررسی کنیم ج می شه nlogn/m ....

موفق باشیدBig Grin
دهنم سرویس شد تا فهمیدم راه حلش چی می گهBlush

وقتی که ما میخواهیم برای [tex]i = \frac{n}{2m}[/tex] چک کنیم که ایا [tex]B^i[/tex] یک زیر دنباله هست یا نه یه هزینه ای باید بدیم که توی تحلیل شما تی پاراگراف اول این هزینه حساب نشده و یه جای کار میلنگه!


منم خیلی روی این قسمت پاسخشون فکر کردم..
ولی فکر میکنم ایشون ابتدا تعداد بررسیها رو حساب کردند و در اخر ضرب در هزینه هر بررسی کردند!!