تالار گفتمان مانشت

نسخه‌ی کامل: سوال طراحی الگوریتم(ضرب استراسن)
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

دوستان کسی میتونه این سوالو برام توضیح بده.

جواب گزینه 2 است.


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
[فکر کنم جواب درست گ ۳ باشه
با توجه به این که مسئله کوچک ضرب دو مانریس ۲ در ۲ می باشد.
صورت بازگشتی مسئله به صورت زیر می باشد:
[tex]T(n)= 7T(\frac{n}{2}) 18(\frac{n}{2})^{2}[/tex]
[tex]T(2)=4[/tex]
با این حساب t(8) هفت بار t(4) را فراخوانی می کند و هر t(4) هفت بار t(2) را فراخوانی می کند پس در کل 49 بار این تابع فراخوانی می گردد.
نه جواب 57 جوابش .

تو راه حلش نوشته 49+7+1=57 حالا چطوری شده به نظرتون؟؟BlushBlushBlushBlush
سلام
لطفا بگید این سوال در کدام گرایش امده و در چه سالی طرح شده ؟ فکر می کنم این سوال را تو کتاب کنکور مقسمی دیدم و فکر می کنم که جواب 49 گفته بود ولی برای محض اطمینان بیشتر این اطلاعات را بدید تا دوباره صورت سوال و جوابش تو کتاب مقسمی بخوانم.
سلام
به نظرم منظور طراح از فراخوانی های بازگشتی خود فراخوانی T(8 هم هست پس تعداد فراخوانی ها میشود:

T(n )= 7 * T(n/2) + 1

که حاصل میشود 57. البته چون سوال گفته فراخوانی های بازگشتی نباید خود T(8 را حساب کند چون بازگشتی نیست بنابراین جواب صحیح میتونه 57 - 1 یعنی 56 باشه که توی گزینه ها نیست پس باید فرض کنیم که خود T(8 را هم باید حساب کنیم و همان 57 را جواب صحیح بدانیم. Smile
(15 آذر 1392 12:23 ق.ظ)misagh01 نوشته شده توسط: [ -> ]سلام
به نظرم منظور طراح از فراخوانی های بازگشتی خود فراخوانی T(8 هم هست پس تعداد فراخوانی ها میشود:

T(n )= 7 * T(n/2) + 1

که حاصل میشود ۵۷/ البته چون سوال گفته فراخوانی های بازگشتی نباید خود T(8 را حساب کند چون بازگشتی نیست بنابراین جواب صحیح میتونه ۵۷ - ۱ یعنی ۵۶ باشه که توی گزینه ها نیست پس باید فرض کنیم که خود T(8 را هم باید حساب کنیم و همان ۵۷ را جواب صحیح بدانیم. Smile

سلام کمی در رابطه با فرمولی که دادید T(n )= 7 * T(n/2) + 1 گیج شدم شما از یک طرف تعداد t(4) را در فرمول T(8 )= 7 * T(4) + 1
حساب می کنید و بعد دوباره خود t(4 را هم (منظورم جمع با 1) دوباره در T(4 )= 7 * T(2) + 1 حساب می کنید این یعنی این که دوبار t(4) را حساب می کنید که درست نیست ؟؟؟؟
(15 آذر 1392 01:39 ب.ظ)rad.bahar نوشته شده توسط: [ -> ]
(15 آذر 1392 12:23 ق.ظ)misagh01 نوشته شده توسط: [ -> ]سلام
به نظرم منظور طراح از فراخوانی های بازگشتی خود فراخوانی T(8 هم هست پس تعداد فراخوانی ها میشود:

T(n )= 7 * T(n/2) + 1

که حاصل میشود ۵۷/ البته چون سوال گفته فراخوانی های بازگشتی نباید خود T(8 را حساب کند چون بازگشتی نیست بنابراین جواب صحیح میتونه ۵۷ - ۱ یعنی ۵۶ باشه که توی گزینه ها نیست پس باید فرض کنیم که خود T(8 را هم باید حساب کنیم و همان ۵۷ را جواب صحیح بدانیم. Smile

سلام کمی در رابطه با فرمولی که دادید T(n )= 7 * T(n/2) + 1 گیج شدم شما از یک طرف تعداد t(4) را در فرمول T(8 )= 7 * T(4) + 1
حساب می کنید و بعد دوباره خود t(4 را هم (منظورم جمع با ۱) دوباره در T(4 )= 7 * T(2) + 1 حساب می کنید این یعنی این که دوبار t(4) را حساب می کنید که درست نیست ؟؟؟؟
سلام
فرمول T(8 )= 7 * T(4) + 1 تعداد T(8 را حساب میکند که برای محاسبه نیاز به دانستن T(4 داریم حالا در فرمول T(4 )= 7 * T(2) + 1 این مقدار محاسبه میشود.
"1 +" در فرمول اول مربوط به یک بار فراخوانی T(8 و در فرمول دوم مربوط به یک بار فراخوانی T(4 میباشد و در هر کدام یکبار حساب شده.
لینک مرجع