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

تست ساختمان داده ۹۱ - پیچیدگی زمانی

ارسال:
  

Amir V پرسیده:

تست ساختمان داده ۹۱ - پیچیدگی زمانی

سلام.

دوستان تست زیر چطور حل میشه؟ و لطفا یه نفر قانون و روش حل اینطور سوالات رو توضیح بده. ممنون میشم ازتون.

کد:
for(i=0;i<n;i=i/2)
for(j=i;j<n;j=j/3)
x++;

۰
ارسال:
  

m@hboobe پاسخ داده:

RE: تست ساختمان داده ۹۱ - پیچیدگی زمانی

سلام
اینجور سوالات من اینجور واسه خودم تحلیل میکنم حالا نمیدونم چطور میشه واسه بعضیها درست جواب میده و اسه بعضیها نه!

حلقه while بیرونی در این سوال داره هر بار بازه رو نصف میکنه یعنی log n مبنای ۲، اما این حلقه، حلقه دیگه ای از while در دل خودش داره که همون i رو این دفعه یه log n مبنای۳ دیگه میگیره ولی حاصلش بر روی حلقه بیرونی تاثیری نداره واسه همین نمیگیم log logn و لگاریتم ها در هم ضرب میشن

اگر بخوایم بگیم مبناها رو در نظر نگیریم فکر کنم گزینه ۲ باشه...

لطفا دوستان دیگه راهنمایی کنند


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

۰
ارسال:
  

deh-ab پاسخ داده:

RE: تست ساختمان داده ۹۱ - پیچیدگی زمانی

(۱۹ آذر ۱۳۹۱ ۰۲:۴۸ ب.ظ)Amir V نوشته شده توسط:  سلام.

دوستان تست زیر چطور حل میشه؟ و لطفا یه نفر قانون و روش حل اینطور سوالات رو توضیح بده. ممنون میشم ازتون.

کد:
for(i=0;i<n;i=i/2)
for(j=i;j<n;j=j/3)
x++;

با سلام:
به نظر من یه جای این سوال لنگ میزنه و حلقه بی نهایت بار اجرا میشه آخه شرط i=i/2 هیچ وقت افزایش پیدا نمیکنه وقتی حلقه از i=0 شروع میشه همیشه شرط برقراره/...

دوستان یه چک کنن ببینن چه جوری میشه!!!!

(۱۹ آذر ۱۳۹۱ ۰۸:۴۱ ب.ظ)m@hboobe نوشته شده توسط:  سلام
اینجور سوالات من اینجور واسه خودم تحلیل میکنم حالا نمیدونم چطور میشه واسه بعضیها درست جواب میده و اسه بعضیها نه!

حلقه while بیرونی در این سوال داره هر بار بازه رو نصف میکنه یعنی log n مبنای ۲، اما این حلقه، حلقه دیگه ای از while در دل خودش داره که همون i رو این دفعه یه log n مبنای۳ دیگه میگیره ولی حاصلش بر روی حلقه بیرونی تاثیری نداره واسه همین نمیگیم log logn و لگاریتم ها در هم ضرب میشن

اگر بخوایم بگیم مبناها رو در نظر نگیریم فکر کنم گزینه ۲ باشه...

لطفا دوستان دیگه راهنمایی کنند
با سلام:
این سوال که شما عکس اونا گذاشتین جوابش [tex]log^{2}n[/tex]
حلقه اول [tex]logn[/tex] حلقه دوم هم[tex]logn[/tex] بار تکرار میشه در کل همون [tex]log^{2}n[/tex] میشه/...

۰
ارسال:
  

javadem پاسخ داده:

RE: تست ساختمان داده ۹۱ - پیچیدگی زمانی

منم موافقم با شما :
من اینطور تستا رو با نوشتن چند مرحله از اجراش و بعد بسطش تا آخر حل میکنم که اینطور میشه:
[tex]log_{3}^{n} log_{3}^{n/2} log_{3}^{n/4} ... log_{3}^{2} log_{3}^{1}[/tex]
که تعداد این log ها برابر با[tex]log_{2}^{n}[/tex]
و از اونجایی که تمام log ها با هم هم رشد هستند برای تعیین مرتبه میتونیم پایه log ها رو ۲ در نظر بگیرم و بگیم که lg n تا lg داریم(n و n/2 و ... رو هم میتونیم همرو n در نظر بگیریم).
که میشه : [tex]\Theta (lgn lgn lgn ...)=\Theta(lg^2n)[/tex]

۰
ارسال:
  

m@hboobe پاسخ داده:

تست ساختمان داده ۹۱ - پیچیدگی زمانی

(۱۹ آذر ۱۳۹۱ ۰۹:۱۹ ب.ظ)deh-ab نوشته شده توسط:  به نظر من یه جای این سوال لنگ میزنه و حلقه بی نهایت بار اجرا میشه آخه شرط i=i/2 هیچ وقت افزایش پیدا نمیکنه وقتی حلقه از i=0 شروع میشه همیشه شرط برقراره/...

دوستان یه چک کنن ببینن چه جوری میشه!!!!
بله همین جوره که میگید !
من تستهای سال۹۱ کامپیوتر و ایتی چک کردم فقط این سوال بود که چنین شباهتی داشت با این تیکه کد!!

۰
ارسال:
  

Amir V پاسخ داده:

Re: تست ساختمان داده ۹۱ - پیچیدگی زمانی

ممنون بچه ها.

یه دفعه دیگه میشه بگین چرا loglogn نمیشه؟

منبعی یا جزوه ای چیزی دارین که بشه این نوع مرتبه زمانیها رو از روش خوند؟ یا مثلا مرتبه زمانیهایی که نیاز به تغییر متغیر دارن.

Sent from my Google Galaxy Nexus using Tapatalk 2.4

ارسال:
  

javadem پاسخ داده:

RE: تست ساختمان داده ۹۱ - پیچیدگی زمانی

(۱۹ آذر ۱۳۹۱ ۱۰:۲۲ ب.ظ)Amir V نوشته شده توسط:  ممنون بچه ها.

یه دفعه دیگه میشه بگین چرا loglogn نمیشه؟

منبعی یا جزوه ای چیزی دارین که بشه این نوع مرتبه زمانیها رو از روش خوند؟ یا مثلا مرتبه زمانیهایی که نیاز به تغییر متغیر دارن.

Sent from my Google Galaxy Nexus using Tapatalk 2.4

ببینید داخل تمام حل هایی که دوستان انجام دادند ثابت شد که ما به تعداد lgn بار حلقه شامل حلقه داخلی (که خود حلقه داخلی هم تقریبا هر بار lgn بار اجرا میشه) رو اجرا میکنیم پس lgn * lgn جواب میشه. اما lglgn رشدش خیلی کمتر از این حرفاست، هیچ ربطی به جواب این سوال نداره دلیل سوالتون رو نمیفهمم، جایی همچین جوابی دادند که واسه شما سوال شده؟
البته گاهی دیدم برخی این ۲ تا رو به اشتباه(بخاطر نزدیکی ظاهری) یکی میدونن ، اما با کمی توجه میفهمید که خیییییلی با هم فرق دارند!
یافتن تمامی ارسال‌های این کاربر

۰
ارسال:
  

Lonely Palm پاسخ داده:

تست ساختمان داده ۹۱ - پیچیدگی زمانی

یه کتاب طراحی الگوریتم هست، از دکتر باقری انتشارات ناقوس چاپش کرده و جلد سیاه و زردی داره
اون کتاب پر مسئله و تمرین واسه اینجور مرتبه زمانی هاست انواع مختلفی ازش رو حل کرده

۰
ارسال:
  

Amir V پاسخ داده:

Re: تست ساختمان داده ۹۱ - پیچیدگی زمانی

درسته. بابت گیج بازیم شرمنده.
مرسی.

Sent from my Google Galaxy Nexus using Tapatalk 2.4



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
Question بهترین منبع ساختمان داده برای کنکور ارشد marvelous ۱۰ ۱۲,۶۹۲ ۱۵ آذر ۱۴۰۱ ۰۷:۵۶ ب.ظ
آخرین ارسال: msnmkh
  فیلم آموزش ساختمان داده negin_bt ۰ ۱,۳۰۴ ۲۰ مهر ۱۴۰۱ ۰۷:۵۶ ب.ظ
آخرین ارسال: negin_bt
Exclamation سلام لطفاً یکی به من بگه مرتبه زمانی ها چطوری به log تبدیل میشن فرمول داره؟؟ Azadam ۶ ۵,۰۳۸ ۰۶ دى ۱۴۰۰ ۰۹:۰۲ ق.ظ
آخرین ارسال: Soldier's life
  معرفی کتاب برای ساختمان داده siamakaf ۲ ۴,۷۲۴ ۱۲ آبان ۱۳۹۹ ۰۹:۲۱ ق.ظ
آخرین ارسال: siamakaf
  حل تست پایگاه داده پیشرفته ۹۷ khoofi66 ۳ ۵,۷۴۲ ۰۵ تیر ۱۳۹۹ ۱۰:۵۶ ق.ظ
آخرین ارسال: masoud@67
  حل مساله مرتبه زمانی حلقه های تو در تو sarashahi ۱۶ ۲۳,۲۳۲ ۱۹ خرداد ۱۳۹۹ ۰۱:۱۶ ب.ظ
آخرین ارسال: gillda
  ساختمان داده و پایگاه داده پارسه امیدوار ۴ ۴,۵۸۶ ۱۲ خرداد ۱۳۹۹ ۰۸:۰۳ ب.ظ
آخرین ارسال: marvelous
  مرتبه زمانی Sanazzz ۱۷ ۲۱,۷۸۲ ۰۹ اردیبهشت ۱۳۹۹ ۰۶:۴۶ ب.ظ
آخرین ارسال: mohsentafresh
  فصل HEAP از کتاب ساختمان داده طورانی (پارسه) tourani ۳۷ ۴۰,۵۶۶ ۱۲ اسفند ۱۳۹۸ ۰۵:۱۹ ب.ظ
آخرین ارسال: hossein4070
  منبع ساختمان داده RASPINA ۷ ۸,۰۴۹ ۱۶ آذر ۱۳۹۸ ۰۱:۳۰ ق.ظ
آخرین ارسال: Behnam‌

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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