ABA


"המרת פונקציה רקורסיבית לנוסחה בשיטת האיטרציה"
גירסת הדפסה        
קבוצות דיון לימודים, מדע ותרבות נושא #15611 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15611
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   16:03   21.10.09   
אל הפורום  
  המרת פונקציה רקורסיבית לנוסחה בשיטת האיטרציה  
 
   ערכתי לאחרונה בתאריך 21.10.09 בשעה 16:07 בברכה, ronen333
 
אהלן חבר'ה :),
נשאלתי את השאלה הבאה:
"כתבו נוסחת T(N) המתארת את זמן הריצה של הפונקציה שכתבת, ופתרו אותה באמצעות שיטת האיטרציה".

אפשר הסבר בבקשה איך אני מפעיל את שיטת האיטרציה על פונקציות רקוסביות? כי אני לא בטוח שהבנתי.

הפונקציה הרקורסיבית שלי היא:


void swap(int * a,int * b)
{
int temp=*a;
*a=*b;
*b=temp;
}
void recursive_selection_sort (int a, int n)
{
int max=a;
int i,index=0;
if(n==0)
return;
for(i=0;i<n;i++)
{
if(max<a)
{
max=a;
index=i;
}
}
swap(&a,&a);
recursive_selection_sort(a,n-1);
}

ורשמתי את הדבר הבא:


T(N)=T(N-1)+N+1

T(N-1)=T(N-2)+N-1+1+N+1=T(N-2)+2N+1
T(N-2)=T(N-3)+N-2+1+2N+1=T(N-3)+3N+0
T(N-3)=T(N-4)+N-3+1+3N=T(N-4)+4N-2
T(N-4)=T(N-5)+N-4+1+4N-2=T(N-5)+5N-5
...
T(N-N)=0

T(N-K)=(K+1)N+N(N+1)/2


אין לי מושג אם אני עושה את זה כמו שצריך, ואם לא אשמח להסבר.

תודה רבה|כן|


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  בקוד לא הימרתי את הסוגרים מרובעים הנה תיקון ronen333  21.10.09 17:21 1
  האלגוריתם בסדר. Deuce  21.10.09 17:30 2
     אלון!!! ronen333  21.10.09 19:58 3
         WTF יצא לי אלון במקום אייל ronen333  21.10.09 21:40 4
         חחח לא נעלבתי בקשר לאלון, איך שפתרתי לך זה איטרטיבי. Deuce  21.10.09 21:52 5
             תודה יא מלך D= ronen333  21.10.09 22:03 6

       
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   17:21   21.10.09   
אל הפורום  
  1. בקוד לא הימרתי את הסוגרים מרובעים הנה תיקון  
בתגובה להודעה מספר 0
 
  

void swap(int * a,int * b)
{
int temp=*a;
*a=*b;
*b=temp;
}
void recursive_selection_sort (int a[], int n)
{
int max=a[0];
int i,index=0;
if(n==0)
return;
for(i=0;i<n;i++)
{
if(max<a[i])
{
max=a[i];
index=i;
}
}
swap(&a[n-1],&a[index]);
recursive_selection_sort(a,n-1);
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   17:30   21.10.09   
אל הפורום  
  2. האלגוריתם בסדר.  
בתגובה להודעה מספר 0
 
קודם כל נוסחא רקורסיבית:

T(n) = T(n-1) + n. עזוב אותך מפלוס אחד מינוס1
T(n-1) = T(n-2) + (n-1).
-->
T(n) = T(n-1) + n = T(n-2) + (n-1) + n = ... = 1 + 2 + ... + n = n(n+1)/2 = O(n^2).

שיטת האיטרציה לא יודע בידיוק מה הכוונה שלך. אולי זה שם נרדף לשיטת האב.
http://he.wikipedia.org/wiki/%D7%A9%D7%99%D7%98%D7%AA_%D7%94%D7%90%D7%91

כדי להסביר אותה צריך להבין קצת סימונים מתמטים ...






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   19:58   21.10.09   
אל הפורום  
  3. אלון!!!  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 21.10.09 בשעה 20:06 בברכה, ronen333
 
שנים לא שמעתי מימך, איפה נעלמת?!@ D=

ממ עדיין לא למדנו את שיטת הMASTER (עד עכשיו למדנו את שיטת ההצבה { שהיא בעצם אינדוקציה ואני מעדיף שלא לגעת בה}, שיטת האיטרציה ועוד אחת שהמרצה אמר שנלמד בהמשך.. אני מאמין שהוא מתכוון למאסטר).
עפ"י מה שמוסבר במצגת של הקורס שיטת האיטרציות היא "פיתוח חוזר ונשנה של הנוסחא הרקורסיבית, עד שמגיעים לתנאי עצירה, ואז פישוט הביטוי המתקבל. שיטה זו נקראת שיטת האיטרציה (iteration method)".
שחיפשתי בגוגל ראיתי שגם בטכניון מלמדים על זה יחד עם שיטת הMASTER
,אך עדיין לא הצלחתי להבין איך משתמשים בהן.

בגלל שגוף השאלה דורש את שיטת האיטרציה ארצה לדעת איך פותרים עם שיטת האיטרציה.. אבל אשמח אם גם תסביר לי איך עובד שיטת הMASTER כי כרגע זה נראה לי פחות או יותר כמו ג'יבריש.

תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   21:40   21.10.09   
אל הפורום  
  4. WTF יצא לי אלון במקום אייל  
בתגובה להודעה מספר 3
 
   רק עכשיו אני קולט.
חחח סורי אייל אל תעלב, אני חושב שזה קשור לזה שבאותו רגע שכתבתי את ההודעה חבר שלי בשם אלון שלח לי הודעה במסנג'ר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   21:52   21.10.09   
אל הפורום  
  5. חחח לא נעלבתי בקשר לאלון, איך שפתרתי לך זה איטרטיבי.  
בתגובה להודעה מספר 3
 
נמשיך בפרטי.






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   22:03   21.10.09   
אל הפורום  
  6. תודה יא מלך D=  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net