با سلام.می خواستم تعدادتکرار دستورt=t+1 را در برنامه زیر بدست بیارم.لطفا کمک کنید.
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(k=1;k<=n;++k)
t=t+1;
لطفا اطه ممكنه با سيگما حل کنید
با تشکر
با سلام.می خواستم تعدادتکرار دستورt=t+1 را در برنامه زیر بدست بیارم.لطفا کمک کنید.
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(k=1;k<=n;++k)
t=t+1;
لطفا اطه ممكنه با سيگما حل کنید
با تشکر
سلام فکر کنم یه همچین چیزی میشه البته مطمئن نیستم
s:سیگما عدد اول حد پایین عدد دوم حد بالا
تشکر یادت نره :دی
s ( i=1 , i=n ) s ( j= i, n ) s ( 1 , n ) 1=s(i=1,i=n)s(j=i,n)n= n*[s(i=1,i=n)s(j=i,n)1]=n*[s(i=1,i=n)(n-i)]=n*[[s(i=1,i=n)n]-[s(i=1,i=n)i]]=n*(n2-n(n+1)/2)
سلام دوست عزیز.
با توجه به کدی که شما نوشته اید ، همگی قبول داریم که حلقه k در هر بار دور اجرا n بار اجرا می شود. حال حلقه i و j را با هم بررسی می کنیم. جدول زیر تعداد تکرارهای کد های درون حلقه j را با توجه به مقدار i نشان می دهد.
i j
1 n
2 n-1
3 n-2
4 n-3
. .
. .
. .
n 1
-----------------
+ (n(n+1)/2)*n => n/2*(n^2+n) => 1/2 n^3 + 1/2 n^2
حال اگر ما اعداد ستون j را با هم جمع کنیم، تعداد تکرار های حلقه k را به ما می دهد. می دانیم که مجموع اعداد 1 تا n برابرn*(n+1)/2می باشد. حلقه k هم به نوبه خود خط t=t+1 را n بار اجرا می کند. پس تعداد اجرای خط مذکور به تعداد گفته شد در بالا می رسد.
موفق و پیروز