زمان کنونی: ۰۲ آذر ۱۴۰۳, ۰۹:۴۷ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

حل تست مرتبه زمانی

ارسال:
  

saberz پرسیده:

حل تست مرتبه زمانی

دورود بر عزیزان
کسی میتونه توضیحی در مورد حل این سوال بده؟؟؟؟؟ConfusedHuh


[تصویر:  395288_a1k4inbv1cru.jpg]
نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

Black.Star پاسخ داده:

RE: حل تست مرتبه زمانی

سلام
سوال خوبیه، اگه قبلا با این نوع سری‌ها آشنا باشین که می‌تونین به صورت شهودی جواب رو که یه سری هارمونیکه رو بدین، اما اگه نباشین هم مهم نیست، چون با یک 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 .
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

LEA3C پاسخ داده:

RE: حل تست مرتبه زمانی

جواب رو در پیوست گذاشتم
اگر توضیح بیشتر لازم بود بفرمایید تا خدمتتون عرض کنم


فایل‌(های) پیوست شده

نقل قول این ارسال در یک پاسخ

ارسال:
  

saberz پاسخ داده:

RE: حل تست مرتبه زمانی

(۰۴ بهمن ۱۳۹۴ ۱۰:۳۷ ب.ظ)LEA3C نوشته شده توسط:  جواب رو در پیوست گذاشتم
اگر توضیح بیشتر لازم بود بفرمایید تا خدمتتون عرض کنم




مرسی از کمکت و حل سوال دوست عزیزم Heart

(۰۴ بهمن ۱۳۹۴ ۱۰:۵۵ ب.ظ)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 .



خیلی خوب و جامع بود.عالی بود.مرسی از لطفت
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
Exclamation سلام لطفاً یکی به من بگه مرتبه زمانی ها چطوری به log تبدیل میشن فرمول داره؟؟ Azadam ۶ ۴,۸۹۰ ۰۶ دى ۱۴۰۰ ۰۹:۰۲ ق.ظ
آخرین ارسال: Soldier's life
  مرتبه ایجاد درخت rad.bahar ۱ ۳,۳۷۱ ۳۰ مهر ۱۳۹۹ ۰۳:۳۴ ب.ظ
آخرین ارسال: rad.bahar
  مرتبه شبه کد rad.bahar ۱ ۲,۳۳۴ ۲۲ مهر ۱۳۹۹ ۰۹:۳۲ ب.ظ
آخرین ارسال: BBumir
  حل مساله مرتبه زمانی حلقه های تو در تو sarashahi ۱۶ ۲۲,۹۶۴ ۱۹ خرداد ۱۳۹۹ ۰۱:۱۶ ب.ظ
آخرین ارسال: gillda
  مرتبه زمانی Sanazzz ۱۷ ۲۱,۵۷۹ ۰۹ اردیبهشت ۱۳۹۹ ۰۶:۴۶ ب.ظ
آخرین ارسال: mohsentafresh
  پیچیدگی زمانی اکشن های قابل اعمال در یک وضعیت اsepid8994 ۰ ۱,۷۸۶ ۲۹ اسفند ۱۳۹۸ ۱۲:۵۱ ب.ظ
آخرین ارسال: اsepid8994
  مرتبه زمانی یافتن قطر Sepideh96 ۲ ۳,۸۰۴ ۰۸ آذر ۱۳۹۸ ۰۴:۳۴ ب.ظ
آخرین ارسال: erfan30
  مرتبه مانی Sanazzz ۳ ۳,۷۱۶ ۰۵ خرداد ۱۳۹۸ ۰۲:۳۶ ب.ظ
آخرین ارسال: Sanazzz
Question یافتن دو عدد پیچیدگی زمانی O(n) porseshgar ۲ ۳,۹۳۷ ۱۵ بهمن ۱۳۹۷ ۱۲:۱۶ ب.ظ
آخرین ارسال: porseshgar
  مرتبه زمانی Sanazzz ۰ ۲,۰۴۰ ۰۴ بهمن ۱۳۹۷ ۰۵:۴۱ ب.ظ
آخرین ارسال: Sanazzz

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close