تالار گفتمان مانشت
سوال طراحی الگوریتم(ضرب استراسن) - نسخه‌ی قابل چاپ

سوال طراحی الگوریتم(ضرب استراسن) - tarane1992 - 10 آذر ۱۳۹۲ ۱۰:۰۱ ب.ظ

سلام

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

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


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: سوال طراحی الگوریتم(ضرب استراسن) - rad.bahar - 10 آذر ۱۳۹۲ ۱۱:۲۱ ب.ظ

[فکر کنم جواب درست گ ۳ باشه
با توجه به این که مسئله کوچک ضرب دو مانریس ۲ در ۲ می باشد.
صورت بازگشتی مسئله به صورت زیر می باشد:
[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) را فراخوانی می کند پس در کل ۴۹ بار این تابع فراخوانی می گردد.

RE: سوال طراحی الگوریتم(ضرب استراسن) - tarane1992 - 11 آذر ۱۳۹۲ ۱۲:۲۳ ب.ظ

نه جواب ۵۷ جوابش .

تو راه حلش نوشته ۴۹+۷+۱=۵۷ حالا چطوری شده به نظرتون؟؟BlushBlushBlushBlush

RE: سوال طراحی الگوریتم(ضرب استراسن) - rad.bahar - 14 آذر ۱۳۹۲ ۰۷:۴۰ ب.ظ

سلام
لطفا بگید این سوال در کدام گرایش امده و در چه سالی طرح شده ؟ فکر می کنم این سوال را تو کتاب کنکور مقسمی دیدم و فکر می کنم که جواب ۴۹ گفته بود ولی برای محض اطمینان بیشتر این اطلاعات را بدید تا دوباره صورت سوال و جوابش تو کتاب مقسمی بخوانم.

RE: سوال طراحی الگوریتم(ضرب استراسن) - misagh01 - 15 آذر ۱۳۹۲ ۱۲:۲۳ ق.ظ

سلام
به نظرم منظور طراح از فراخوانی های بازگشتی خود فراخوانی T(8 هم هست پس تعداد فراخوانی ها میشود:

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

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

RE: سوال طراحی الگوریتم(ضرب استراسن) - rad.bahar - 15 آذر ۱۳۹۲ ۰۱:۳۹ ب.ظ

(۱۵ آذر ۱۳۹۲ ۱۲:۲۳ ق.ظ)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) را حساب می کنید که درست نیست ؟؟؟؟

RE: سوال طراحی الگوریتم(ضرب استراسن) - misagh01 - 15 آذر ۱۳۹۲ ۰۴:۱۰ ب.ظ

(۱۵ آذر ۱۳۹۲ ۰۱:۳۹ ب.ظ)rad.bahar نوشته شده توسط:  
(15 آذر ۱۳۹۲ ۱۲:۲۳ ق.ظ)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 این مقدار محاسبه میشود.
"۱ +" در فرمول اول مربوط به یک بار فراخوانی T(8 و در فرمول دوم مربوط به یک بار فراخوانی T(4 میباشد و در هر کدام یکبار حساب شده.