تالار گفتمان مانشت
پیچیدگی زمانی ۳ قطعه کد تقریبا مشابه! - نسخه‌ی قابل چاپ

پیچیدگی زمانی ۳ قطعه کد تقریبا مشابه! - m@hboobe - 19 آبان ۱۳۹۱ ۱۱:۱۲ ق.ظ

سلام
کتاب پوران پژوهش یه مثال داره که فکرمو خیلی مشغول کردهUndecided
در هر سه کد تعداد اجرای خط x=x+1 را بدست میاورد.

[attachment=7666]

[tex]n n-1 n-2 ... (n-\frac{n}{2} 1)=\frac{3n^{2} 2n}{8}=\Theta (n^{2})[/tex]

[attachment=7668]

[tex]\frac{n}{2} \frac{n}{4} \frac{n}{8} ...=n*\frac{\frac{1}{2}}{1-\frac{1}{2}}=\Theta (n)[/tex]

[attachment=7670]

[tex]n \frac{n}{2} \frac{n}{4} \frac{n}{8} ... \frac{n}{n}=\Theta (nlogn)[/tex]

Huh

RE: پیچیدگی زمانی ۳ قطعه کد تقریبا مشابه! - nasi1391 - 19 آبان ۱۳۹۱ ۱۱:۴۵ ق.ظ

(۱۹ آبان ۱۳۹۱ ۱۱:۱۲ ق.ظ)m@hboobe نوشته شده توسط:  سلام
کتاب پوران پژوهش یه مثال داره که فکرمو خیلی مشغول کردهUndecided
در هر سه کد تعداد اجرای خط x=x+1 را بدست میاورد.



[tex]n n-1 n-2 ... (n-\frac{n}{2} 1)=\frac{3n^{2} 2n}{8}=\Theta (n^{2})[/tex]



[tex]\frac{n}{2} \frac{n}{4} \frac{n}{8} ...=n*\frac{\frac{1}{2}}{1-\frac{1}{2}}=\Theta (n)[/tex]



[tex]n \frac{n}{2} \frac{n}{4} \frac{n}{8} ... \frac{n}{n}=\Theta (nlogn)[/tex]

Huh

سلام
اشتباه شما در این است که به بلوک ها توجه نمیکنید که کجا باز شده و کجا بسته شده ! منظورم از بلوک ها همان براکت هاست.
توجه دقیق تر به مسئله داشته باشید. (از لحاظ syntax این دو برنامه با هم فرق میکنند.)

RE: پیچیدگی زمانی ۳ قطعه کد تقریبا مشابه! - farhadk - 19 آبان ۱۳۹۱ ۱۱:۴۷ ق.ظ

تو پیوست اولتو توجه کنین که چون جلوی حلقه for داخلی علامت بلوک یا همون آکولاد نذاشته پس فقط یه دستور جلوش متعلق به حلقه for داخلی هست و بعد از اتمام حلقه داخلی میاد بیرون بعد یکی از n کم می کنه و باز کارو ادامه می ده.

اما تو پیوست دوم بلوک متعلق به حلقه داخلی هست و به ازای هر بار اجرای حلقه داخلی یکی از مقدار n کم می شه.

پیوست سوم شما فکر کنم یه چیز رو ننوشتین چک کنین ببینین درسته؟

RE: پیچیدگی زمانی ۳ قطعه کد تقریبا مشابه! - asusx59sr - 19 آبان ۱۳۹۱ ۱۱:۵۹ ق.ظ

اگه بلوک ها رو دقیق بنویسی خیلی سادست

RE: پیچیدگی زمانی ۳ قطعه کد تقریبا مشابه! - javadem - 19 آبان ۱۳۹۱ ۱۲:۰۱ ب.ظ

پیرو فرمایشات دوستان من هم یه چیزایی میگم:

اولین سوال که همونطور که نوشتید یه تصاعد حسابی هست که جمله اولش برابر n و جمله آخرش برابر ([tex]n- \frac{n}{2} 1[/tex]) و برای محاسبه تصاعد حسابی باید جمله اول و آخر رو جمع کنید و در [tex]\frac{n}{2}[/tex] ضرب کنید (که n تعداد جملات تصاعد است و در اینجا برابر است با [tex]\frac{n}{2}[/tex] که در کل میشود [tex]\frac{n}{4}[/tex])!
جمله آخر که در واقع برابر است با [tex]\frac{2n -n 2}{2}[/tex] که همون [tex]\frac{n 2}{2}[/tex] است و بعد از جمع با n برابر میشه با [tex]\frac{3n 2}{2}[/tex] و بعد از ضرب در [tex]\frac{n}{4}[/tex] میشه همون که شما گفتید.



سوال ۲ :
این هم مثل سوال قبل اگه هر مرحله تعداد اجرای جمله اصلی رو در نظر بگیرید میشه همون [tex]\frac{n}{2} \frac{n}{4} ...[/tex] وقتی از n فاکتور بگیریم به [tex]n(\frac{1}{2} \frac{1}{4} ...)[/tex] میرسیم . خوب جمله داخل پرانتز یه تصاعد هندسی با جمله اول [tex]\frac{1}{2}[/tex] و قدرنسبت [tex]\frac{1}{2}[/tex] است و برای محاسبه تصاعد هندسی وقتی که جملات کوچکتر از ۱ هستند و تعداد آنها بینهایت است از فرمول :
جمله اول تقسیم بر ۱منهای قدر نسبت استفاده میکنیم. که در این سوال میشه [tex]\frac{\frac{1}{2} }{1-\frac{1}{2} }[/tex] که برابر با ۱ است و n*1 بدست می آید.

سوال ۳:
حلقه داخلی با گام i هست که در اون صورت داریم :
دور اول چون i برابر ۱ هست حلقه داخلی n بار اجرا میشه دور دوم چون i برابر ۲ است حلقه داخلی با شمارنده فرد اجرا میشود(۱و۳و۵و...n) (که میشه [tex]\frac{n}{2}[/tex]بار) و به همین ترتیب تا آخر . که در کل میشه [tex]n \frac{n}{2} \frac{n}{3} ...[/tex] و با فاکتور گرفتن از n بدست میاد [tex]n(1 \frac{1}{2} \frac{1}{3} ...)[/tex] که [tex](1 \frac{1}{2} \frac{1}{3} ...)[/tex] تقریبا برابر با [tex]Lg(n)[/tex](نه دقیقا اما در کل میشه گفت که هم رشد هستند) پس در کل میگیم این الگوریتم از مرتبه [tex]\Theta( nlgn)[/tex].

RE: پیچیدگی زمانی ۳ قطعه کد تقریبا مشابه! - nasi1391 - 19 آبان ۱۳۹۱ ۱۲:۰۹ ب.ظ

ارزش دانلود داره

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


پیچیدگی زمانی ۳ قطعه کد تقریبا مشابه! - m@hboobe - 19 آبان ۱۳۹۱ ۱۲:۱۴ ب.ظ

ممنون از راهنمایی همتون
حواسم به بلوک ها هست اما یکم بی دقتی کردم !Undecided
با trace و مقداردهی n تقریبا یه چیزایی فهمیدم!

پ.ن:کلا با مسائل پارامتری رابطه نسبتا خوبی ندارم!