PDA

View Full Version : سوال: بدست آوردن پیچیدگی زمانی و مرتبه اجرایی یه برنامه (فوری فوری)



JaVa
یک شنبه 21 خرداد 1391, 16:53 عصر
با عرض سلام و خسته نباشید به تمامی دوستان:

for(i=1;i<=n-1,i++)
for(j=i+1;j<=n;j++)
x+=1


دوستان برای بدست آورده یچیدگی زمانی و مرتبه اجرایی این گونه برنامه ها چطور باید عمل کرد : :عصبانی++::عصبانی++:
خودمم هم اینو بگم که میشه از قواعد سری باید استفاده کرد ؟
اما چطور باید با استفاده از سری ها این گونه مسایل رو حل کرد ؟

for (i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=1;k<=n;k++)
x+=1

:گیج:
یا برای حل این چکار باید کرد؟:گریه::گریه:

لطفا اگه با این موضوعات آشنایی دارید یه توضیحات بدید.

rada07
یک شنبه 21 خرداد 1391, 18:32 عصر
سلام
اول کاری که باید انجام بدی اینه که اول هر خط از برنامه رو بدون در نظر گفتن خط های قبل و بعد از اون حساب کنی

for(i=1;i<=n-1,i++) n-1-1+2=n
for(j=i+1;j<=n;j++) n-(i+1)-2=n-i-1
x+=1 1
دومین کاری که باید انجام بدی این هست که در هر خط به اندازه for های قبلی سیگما بذاری پس خط اول سیگما ندارد خط دوم یک سگیما داره و خط سوم هم دوتا سیگما تو در تو داره. و در آخر همه خط ها رو از خط 1 تا 3 با هم جمع میکنی. و با حل سیگما ها t(n) بدست میاد
http://axgig.com/images/27020700822748413694.png

JaVa
یک شنبه 21 خرداد 1391, 19:29 عصر
با تشکر از شما:

for(i=1;i<=n-1,i++)
for(j=i+1;j<=n;j++)
x+=1

میشه این جاهایی که مشخص کردم رو بگید چیه؟؟؟؟؟؟؟؟

88104

JaVa
دوشنبه 22 خرداد 1391, 21:46 عصر
کسی پیدا نمیشه اینا رو برای ما بگه:گریه:
ثواب داره

tooraj_azizi_1035
سه شنبه 23 خرداد 1391, 20:54 عصر
سلام

حاصل جمع سری 1 تا n میشه: نصف n ضربدر n+1 (با یه عدد تست کن)

for(i=1;i<=n-1,i++)
for(j=i+1;j<=n;j++)
x+=1

در کد بالا حلقه دوم یکبار از 2 تا n یکبار از 3 تا n و ...

یعنی یکبار جمع 2 تا n که میشه
و یکبار جمع 3 تا n که میشه

....