۰
subtitle
ارسال: #۱
  
حل تست مرتبه زمانی
دورود بر عزیزان
کسی میتونه توضیحی در مورد حل این سوال بده؟؟؟؟؟
کسی میتونه توضیحی در مورد حل این سوال بده؟؟؟؟؟
۱
ارسال: #۲
  
RE: حل تست مرتبه زمانی
سلام
سوال خوبیه، اگه قبلا با این نوع سریها آشنا باشین که میتونین به صورت شهودی جواب رو که یه سری هارمونیکه رو بدین، اما اگه نباشین هم مهم نیست، چون با یک Trace ساده میشه جواب رو پیدا کرد. یه عدد توان ۲ رو برای N مثال میزنیم و میبینیم تو هر بار اجرای کامل دو حلقه چه مقادیری به دست میاد:
خب با مقدار اولیه N=8 چند بار اجرا شد؟ ۸ بار، چون مقدار I=1 بود و پرشی نداشتیم. حالا پس از اتمام گام اول اتفاقی که افتاده اینه که I یکی به مقدارش اضافه شده طبق گام حرکتی حلقه For خط اول شبه کد، پس اتفاقی که تو دور دوم میفته اینه که J ما بجای یکی یکی جلو رفتن باید دو تا دو تا جلو بره، ببینیم:
خب، تعداد تکرار حلقه دوم به نصف کاهش پیدا کرد. بریم تا آخر ببینیم چی میشه و بعدش نتیجه گیری کنیم:
خب میبینیم که بار اول N بار بار دوم N/2 و... بار آخر هم N/N بار اجرا شد، یعنی به صورت کلی تعداد کل اجراهای به صورت زیر میشه، فقط اینکه ما باید برای Trace دستی خودمون یه رابطه پیدا کنیم، وقتی بار اول ۸ بار بار دوم ۳ و ۲ و ۲ و... بار اجرا شد، به این نتیجه میرسیم که حد بالا - Upper Limit - متغیر N در هر مرحله تقسیم بر I میشه و ما میتونیم رابطه زیر رو به دست بیاریم. البته توی پرانتز بگم که در محاسبه سری حد بالا و پایین رو نادیده میگیریم اما برای محاسبه خودمون لازم بود که بدونیم.
من هرچی دارم سعی میکنم با این ابزار فرمول نویسی نمیشه چیزی نوشت، همش قاطی میشه، ولی نتیجه گیری اینه که ما یه سیگما از I=1 تا N داریم که تا رسیدن به N هر بار عمل تقسیم N/I رو انجام میده، خب این یعنی میشه با استفاده از حدگیری و قاعده هوپیتال و... اثبات کرد چنین سریای برای حلقه J به نتیجه تتا Logn ختم میشه و یک n هم که از حلقه I داشتیم که نهایتا داریم: تتا nLogn .
سوال خوبیه، اگه قبلا با این نوع سریها آشنا باشین که میتونین به صورت شهودی جواب رو که یه سری هارمونیکه رو بدین، اما اگه نباشین هم مهم نیست، چون با یک Trace ساده میشه جواب رو پیدا کرد. یه عدد توان ۲ رو برای N مثال میزنیم و میبینیم تو هر بار اجرای کامل دو حلقه چه مقادیری به دست میاد:
STEP-1: N=8 | I=1 | J=1,2,3,4,5,6,7,8 | TOTAL=8 = Upper Limit 8/1
خب با مقدار اولیه N=8 چند بار اجرا شد؟ ۸ بار، چون مقدار I=1 بود و پرشی نداشتیم. حالا پس از اتمام گام اول اتفاقی که افتاده اینه که I یکی به مقدارش اضافه شده طبق گام حرکتی حلقه For خط اول شبه کد، پس اتفاقی که تو دور دوم میفته اینه که J ما بجای یکی یکی جلو رفتن باید دو تا دو تا جلو بره، ببینیم:
STEP-2: N=8 | I=2 | J=1,3,5,7 | TOTAL=4 = Upper Limit 8/2
خب، تعداد تکرار حلقه دوم به نصف کاهش پیدا کرد. بریم تا آخر ببینیم چی میشه و بعدش نتیجه گیری کنیم:
STEP-3: N=8 | I=3 | J=1,4,7 | TOTAL=3 = Upper Limit 8/3
STEP-4: N=8 | I=4 | J=1,5 | TOTAL=2 = Upper Limit 8/4
STEP-5: N=8 | I=5 | J=1,6 | TOTAL=2 = Upper Limit 8/5
STEP-6: N=8 | I=6 | J=1,7 | TOTAL=2 = Upper Limit 8/6
STEP-7: N=8 | I=7 | J=1,8 | TOTAL=2 = Upper Limit 8/7
STEP-8: N=8 | I=8 | J=1 | TOTAL=1 = Upper Limit 8/8
STEP-4: N=8 | I=4 | J=1,5 | TOTAL=2 = Upper Limit 8/4
STEP-5: N=8 | I=5 | J=1,6 | TOTAL=2 = Upper Limit 8/5
STEP-6: N=8 | I=6 | J=1,7 | TOTAL=2 = Upper Limit 8/6
STEP-7: N=8 | I=7 | J=1,8 | TOTAL=2 = Upper Limit 8/7
STEP-8: N=8 | I=8 | J=1 | TOTAL=1 = Upper Limit 8/8
خب میبینیم که بار اول N بار بار دوم N/2 و... بار آخر هم N/N بار اجرا شد، یعنی به صورت کلی تعداد کل اجراهای به صورت زیر میشه، فقط اینکه ما باید برای Trace دستی خودمون یه رابطه پیدا کنیم، وقتی بار اول ۸ بار بار دوم ۳ و ۲ و ۲ و... بار اجرا شد، به این نتیجه میرسیم که حد بالا - Upper Limit - متغیر N در هر مرحله تقسیم بر I میشه و ما میتونیم رابطه زیر رو به دست بیاریم. البته توی پرانتز بگم که در محاسبه سری حد بالا و پایین رو نادیده میگیریم اما برای محاسبه خودمون لازم بود که بدونیم.
من هرچی دارم سعی میکنم با این ابزار فرمول نویسی نمیشه چیزی نوشت، همش قاطی میشه، ولی نتیجه گیری اینه که ما یه سیگما از I=1 تا N داریم که تا رسیدن به N هر بار عمل تقسیم N/I رو انجام میده، خب این یعنی میشه با استفاده از حدگیری و قاعده هوپیتال و... اثبات کرد چنین سریای برای حلقه J به نتیجه تتا Logn ختم میشه و یک n هم که از حلقه I داشتیم که نهایتا داریم: تتا nLogn .
۰
ارسال: #۳
  
RE: حل تست مرتبه زمانی
جواب رو در پیوست گذاشتم
اگر توضیح بیشتر لازم بود بفرمایید تا خدمتتون عرض کنم
اگر توضیح بیشتر لازم بود بفرمایید تا خدمتتون عرض کنم
ارسال: #۴
  
RE: حل تست مرتبه زمانی
(۰۴ بهمن ۱۳۹۴ ۱۰:۳۷ ب.ظ)LEA3C نوشته شده توسط: جواب رو در پیوست گذاشتم
اگر توضیح بیشتر لازم بود بفرمایید تا خدمتتون عرض کنم
مرسی از کمکت و حل سوال دوست عزیزم
(۰۴ بهمن ۱۳۹۴ ۱۰:۵۵ ب.ظ)Black.Star نوشته شده توسط: سلام
سوال خوبیه، اگه قبلا با این نوع سریها آشنا باشین که میتونین به صورت شهودی جواب رو که یه سری هارمونیکه رو بدین، اما اگه نباشین هم مهم نیست، چون با یک Trace ساده میشه جواب رو پیدا کرد. یه عدد توان ۲ رو برای N مثال میزنیم و میبینیم تو هر بار اجرای کامل دو حلقه چه مقادیری به دست میاد:
STEP-1: N=8 | I=1 | J=1,2,3,4,5,6,7,8 | TOTAL=8 = Upper Limit 8/1
خب با مقدار اولیه N=8 چند بار اجرا شد؟ ۸ بار، چون مقدار I=1 بود و پرشی نداشتیم. حالا پس از اتمام گام اول اتفاقی که افتاده اینه که I یکی به مقدارش اضافه شده طبق گام حرکتی حلقه For خط اول شبه کد، پس اتفاقی که تو دور دوم میفته اینه که J ما بجای یکی یکی جلو رفتن باید دو تا دو تا جلو بره، ببینیم:
STEP-2: N=8 | I=2 | J=1,3,5,7 | TOTAL=4 = Upper Limit 8/2
خب، تعداد تکرار حلقه دوم به نصف کاهش پیدا کرد. بریم تا آخر ببینیم چی میشه و بعدش نتیجه گیری کنیم:
STEP-3: N=8 | I=3 | J=1,4,7 | TOTAL=3 = Upper Limit 8/3
STEP-4: N=8 | I=4 | J=1,5 | TOTAL=2 = Upper Limit 8/4
STEP-5: N=8 | I=5 | J=1,6 | TOTAL=2 = Upper Limit 8/5
STEP-6: N=8 | I=6 | J=1,7 | TOTAL=2 = Upper Limit 8/6
STEP-7: N=8 | I=7 | J=1,8 | TOTAL=2 = Upper Limit 8/7
STEP-8: N=8 | I=8 | J=1 | TOTAL=1 = Upper Limit 8/8
خب میبینیم که بار اول N بار بار دوم N/2 و... بار آخر هم N/N بار اجرا شد، یعنی به صورت کلی تعداد کل اجراهای به صورت زیر میشه، فقط اینکه ما باید برای Trace دستی خودمون یه رابطه پیدا کنیم، وقتی بار اول ۸ بار بار دوم ۳ و ۲ و ۲ و... بار اجرا شد، به این نتیجه میرسیم که حد بالا - Upper Limit - متغیر N در هر مرحله تقسیم بر I میشه و ما میتونیم رابطه زیر رو به دست بیاریم. البته توی پرانتز بگم که در محاسبه سری حد بالا و پایین رو نادیده میگیریم اما برای محاسبه خودمون لازم بود که بدونیم.
من هرچی دارم سعی میکنم با این ابزار فرمول نویسی نمیشه چیزی نوشت، همش قاطی میشه، ولی نتیجه گیری اینه که ما یه سیگما از I=1 تا N داریم که تا رسیدن به N هر بار عمل تقسیم N/I رو انجام میده، خب این یعنی میشه با استفاده از حدگیری و قاعده هوپیتال و... اثبات کرد چنین سریای برای حلقه J به نتیجه تتا Logn ختم میشه و یک n هم که از حلقه I داشتیم که نهایتا داریم: تتا nLogn .
خیلی خوب و جامع بود.عالی بود.مرسی از لطفت
موضوعهای مرتبط با این موضوع... |
|||||
موضوع: | نویسنده | پاسخ: | بازدید: | آخرین ارسال | |
سلام لطفاً یکی به من بگه مرتبه زمانی ها چطوری به log تبدیل میشن فرمول داره؟؟ | Azadam | ۶ | ۴,۹۲۸ |
۰۶ دى ۱۴۰۰ ۰۹:۰۲ ق.ظ آخرین ارسال: Soldier's life |
|
مرتبه ایجاد درخت | rad.bahar | ۱ | ۳,۳۸۸ |
۳۰ مهر ۱۳۹۹ ۰۳:۳۴ ب.ظ آخرین ارسال: rad.bahar |
|
مرتبه شبه کد | rad.bahar | ۱ | ۲,۳۴۸ |
۲۲ مهر ۱۳۹۹ ۰۹:۳۲ ب.ظ آخرین ارسال: BBumir |
|
حل مساله مرتبه زمانی حلقه های تو در تو | sarashahi | ۱۶ | ۲۳,۰۵۴ |
۱۹ خرداد ۱۳۹۹ ۰۱:۱۶ ب.ظ آخرین ارسال: gillda |
|
مرتبه زمانی | Sanazzz | ۱۷ | ۲۱,۶۴۶ |
۰۹ اردیبهشت ۱۳۹۹ ۰۶:۴۶ ب.ظ آخرین ارسال: mohsentafresh |
|
پیچیدگی زمانی اکشن های قابل اعمال در یک وضعیت | اsepid8994 | ۰ | ۱,۷۹۲ |
۲۹ اسفند ۱۳۹۸ ۱۲:۵۱ ب.ظ آخرین ارسال: اsepid8994 |
|
مرتبه زمانی یافتن قطر | Sepideh96 | ۲ | ۳,۸۱۷ |
۰۸ آذر ۱۳۹۸ ۰۴:۳۴ ب.ظ آخرین ارسال: erfan30 |
|
مرتبه مانی | Sanazzz | ۳ | ۳,۷۲۶ |
۰۵ خرداد ۱۳۹۸ ۰۲:۳۶ ب.ظ آخرین ارسال: Sanazzz |
|
یافتن دو عدد پیچیدگی زمانی O(n) | porseshgar | ۲ | ۳,۹۵۱ |
۱۵ بهمن ۱۳۹۷ ۱۲:۱۶ ب.ظ آخرین ارسال: porseshgar |
|
مرتبه زمانی | Sanazzz | ۰ | ۲,۰۵۱ |
۰۴ بهمن ۱۳۹۷ ۰۵:۴۱ ب.ظ آخرین ارسال: Sanazzz |
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close