|
|
زمان اجرای الگوریتم - نسخهی قابل چاپ صفحهها: ۱ ۲ |
|
زمان اجرای الگوریتم - shayesteb - 23 مرداد ۱۳۹۳ ۰۸:۱۹ ق.ظ
سلام دوستان میشه توضیح بدید تریس مربوط به الگوریتم زیر چطوری میشه و زمان اجراش چقدر هست؟ [tex]sum\: \longleftarrow\: 1\: \: [/tex] [tex]for\: \: \: i\longleftarrow1\: to\: n[/tex] [tex]do\: for\: \: \: j\longleftarrow1\: to\: i^2[/tex] [tex]do\: if\: \: j\: \mod\: i=0[/tex] [tex]then\: for\: k\longleftarrow1\: to\: j[/tex] [tex]do\: sum\: \longleftarrow\: sum\: 1[/tex] |
RE: زمان اجرای الگوریتم - shayesteb - 23 مرداد ۱۳۹۳ ۰۵:۵۱ ب.ظ
(۲۳ مرداد ۱۳۹۳ ۰۸:۱۹ ق.ظ)shayesteb نوشته شده توسط: سلام دوستان دوستان ممنون میشم اگه راهنمایی کنید
|
|
RE: زمان اجرای الگوریتم - MiladCr7 - 23 مرداد ۱۳۹۳ ۰۶:۰۲ ب.ظ
میشه بگی خط اول چیکار میکنه؟ |
RE: زمان اجرای الگوریتم - shayesteb - 23 مرداد ۱۳۹۳ ۰۶:۲۱ ب.ظ
(۲۳ مرداد ۱۳۹۳ ۰۶:۰۲ ب.ظ)miladcr7 نوشته شده توسط: میشه بگی خط اول چیکار میکنه؟ اشتباه شده بود . الان درست شد . sum=1 قرار داده میشه.
|
|
RE: زمان اجرای الگوریتم - MiladCr7 - 23 مرداد ۱۳۹۳ ۰۷:۰۵ ب.ظ
زمان اجراشو نمیدونی که حداقل جوابامون رو باهاش چک کنیم ببینیم درسته یا نه؟ |
RE: زمان اجرای الگوریتم - shayesteb - 23 مرداد ۱۳۹۳ ۰۷:۲۲ ب.ظ
(۲۳ مرداد ۱۳۹۳ ۰۷:۰۵ ب.ظ)miladcr7 نوشته شده توسط: زمان اجراشو نمیدونی که حداقل جوابامون رو باهاش چک کنیم ببینیم درسته یا نه؟ نه چیزی ازش نمیدونم . این سوال یکی از تمرینهای کتاب ساختمان قدسی. شما میدونید حل المسایل داره یا نه؟ |
|
RE: زمان اجرای الگوریتم - MiladCr7 - 23 مرداد ۱۳۹۳ ۰۸:۱۱ ب.ظ
داره فکر کنم.خودت حلش نکردی؟ |
|
RE: زمان اجرای الگوریتم - a.kam - 23 مرداد ۱۳۹۳ ۰۸:۲۹ ب.ظ
جواب دقیقش که میشه [tex](3n 1)*C(n 2,3)/4[/tex] اما اینکه از نظر مرتبه اجرا تقریبا برابر چی میشه را راحت میشه از روی تست ها انتخاب کرد
|
|
RE: زمان اجرای الگوریتم - MiladCr7 - 23 مرداد ۱۳۹۳ ۰۸:۵۷ ب.ظ
این جواب چجوری به دست اومده؟ |
|
RE: زمان اجرای الگوریتم - MiladCr7 - 23 مرداد ۱۳۹۳ ۰۹:۰۷ ب.ظ
پس حلقه K چی میشه؟ |
|
RE: زمان اجرای الگوریتم - shayesteb - 23 مرداد ۱۳۹۳ ۱۱:۱۹ ب.ظ
دوستان ممنون از اینکه راهنمایی کردین پاسخش تتا n به توان ۴ هستش ( سوال ۴۴ فصل اول کتاب ۶۰۰ تست البته من هم نمیدونستم بعدا یکی از دوستان راهنمایی کردن ) اگه هم کسی خواست بگه تا جواب را توضیح بدم.(۲۳ مرداد ۱۳۹۳ ۰۸:۲۹ ب.ظ)a.kam نوشته شده توسط: جواب دقیقش که میشه دوست عزیز ممنونم |
|
RE: زمان اجرای الگوریتم - MiladCr7 - 24 مرداد ۱۳۹۳ ۱۲:۳۹ ق.ظ
ای ول منم [tex]\theta(n^4)[/tex] رو به دست اوردم.ببخشید البته صبح حسابش کردم ولی خب شک داشتم دیگه نگفتم.ولی سوال خیلی جالبی بود.البته من از تریس کردن و تصاعد عددی به دستش اوردم.راه حل دیگه ای داره رو نمیدونم
|
RE: زمان اجرای الگوریتم - shayesteb - 24 مرداد ۱۳۹۳ ۰۹:۱۸ ق.ظ
(۲۴ مرداد ۱۳۹۳ ۱۲:۳۹ ق.ظ)miladcr7 نوشته شده توسط: ای ول منم [tex]\theta(n^4)[/tex] رو به دست اوردم.ببخشید البته صبح حسابش کردم ولی خب شک داشتم دیگه نگفتم.ولی سوال خیلی جالبی بود.البته من از تریس کردن و تصاعد عددی به دستش اوردم.راه حل دیگه ای داره رو نمیدونم بله از طریق تریس کردن به دست میاد. آفرین که جوابتون درست بوده
|
RE: زمان اجرای الگوریتم - MiladCr7 - 24 مرداد ۱۳۹۳ ۰۹:۲۱ ق.ظ
(۲۴ مرداد ۱۳۹۳ ۰۹:۱۸ ق.ظ)shayesteb نوشته شده توسط:(24 مرداد ۱۳۹۳ ۱۲:۳۹ ق.ظ)miladcr7 نوشته شده توسط: ای ول منم [tex]\theta(n^4)[/tex] رو به دست اوردم.ببخشید البته صبح حسابش کردم ولی خب شک داشتم دیگه نگفتم.ولی سوال خیلی جالبی بود.البته من از تریس کردن و تصاعد عددی به دستش اوردم.راه حل دیگه ای داره رو نمیدونم مرسی ممنون |
|
RE: زمان اجرای الگوریتم - MiladCr7 - 24 مرداد ۱۳۹۳ ۱۲:۳۲ ب.ظ
ببین زمان اجرای حلقه دوم و سوم [tex]\lg(n)[/tex] نمیشه چون به ازای هر [tex]j[/tex] توی حلقه دوم مقدار [tex]k[/tex] توی حلقه سوم فرق داره درسته؟ یعنی وقتی [tex]j[/tex] مقدارش ۱ باشه حلقه سوم ۱ بار اجرا میشه و وقتی [tex]j=2[/tex] باشه حلقه سوم ۲ بار اجرا میشه و وقتی [tex]j=4[/tex] باشه حلقه سوم ۴ بار اجرا میشه پس لگاریتمی تغییر نمیکنه. حالا این تریس رو داشته باش: [tex]j=1\longrightarrow1[/tex] [tex]j=2\longrightarrow2[/tex] [tex]j=4\longrightarrow4[/tex] [tex]j=8\longrightarrow8[/tex] و همینطوری ادامه بده.حال قبول داری [tex]j[/tex] داره به صورت [tex]2^p[/tex] تغییر میکنه.p از صفر شروع میشه.حالا این اجرا تا چه وقتی ادامه پیدا میکنه؟ تا وقتی که [tex]2^p<n[/tex] درسته؟یعنی وقتی که [tex]2^{p 1}>n[/tex] دیگه حلقه اجرا نمیشه.درسته؟ پس ما میتونیم یه تقریب بزنیم به این صورت که:[tex]2^{p}\cong n[/tex] درست؟ حالا مجموع زمان اجراها رو محاسبه میکنیم: [tex]2^0 2^1 2^2 2^3 ... 2^p=\frac{2^{p 1}-1}{2-1}=2^{p 1}-1\cong n=\theta(n)[/tex] حلقه اول هم که [tex]\lg(n)[/tex] پس زمان اجرای کل:[tex]n.\lg(n)[/tex] اینجوری حلش کردم با تریس.یه عدد مثل ۴ رو در نظر گرفتم اینم از تریس: [tex]i=1\rightarrow j=1\rightarrow1[/tex]:::::::یعنی به ازای [tex]i=1[/tex] و [tex]j=1[/tex] یه بار اجرا میشه [tex]i=2\rightarrow j=2\rightarrow2[/tex] [tex]i=2\rightarrow j=4\rightarrow4[/tex] [tex]i=3\rightarrow j=3\rightarrow3[/tex] [tex]i=3\rightarrow j=6\rightarrow6[/tex] [tex]i=3\rightarrow j=9\rightarrow9[/tex] [tex]i=4\rightarrow j=4\rightarrow4[/tex] [tex]i=4\rightarrow j=8\rightarrow8[/tex] [tex]i=4\rightarrow j=12\rightarrow12[/tex] [tex]i=4\rightarrow j=16\rightarrow16[/tex] برای بقیه عددها هم این ریتم هستش.حالا اگه به نحوه ی اجرا دقت کنی میبینی به ازای هر [tex]i[/tex] یه سری عددی داریم با جمله اول [tex]i[/tex] و جمله اخر [tex]i^2[/tex] و تعداد جملات و قدر نسبت هم [tex]i[/tex] هستش.خب مجموع سری حسابی رو که میدونیم چجوری به دست میاد خب حالا ما باید برای هر [tex]i[/tex] این مجموع رو به دست بیاریم که میشه: [tex]\sum^n_{i=0}\frac{(i i^2)\ast i}{2}=\sum\frac{i^2}{2} \sum\frac{i^3}{2}=\theta(n^4)[/tex] بفرمایید |