15-03-2009, 21:32
|
|
|
|
חבר מתאריך: 01.05.06
הודעות: 7,861
|
|
פונקציה רקורסיבית שאני לא מצליח להבין מה היא עושה
קוד:
public static float Mystery(int[] a, int k)
{
float x;
if (k == 1)
return a[0];
x = Mystery(a, k - 1) * (k - 1);
return ((a[k - 1] + x) / k);
}
היום התחלנו ללמוד על רקורסיה בביה"ס, ובשיעורי בית נתנו לנו כמה פונקציות שאנחנו צריכים להגיד מה כל אחת מבצעת, ישבתי על הפונקציה הזאת כמעט חצי שעה ולא הצלחתי להבין את המשמעות בתאכלס שהיא עושה.
לפי מה שהצלחתי להבין, החישוב שהיא מבצעת הוא
[tex]\frac{a[0]\cdot(k-1)!+a[k-1]}{k}[/tex]
וכמה שלא חשבתי על זה, החישוב הזה נראה כאילו הוא חותר לממוצע כלשהו, אבל לא הצלחתי להבין מה באמת קורה כאן.
אשמח לקבל כאן עזרה
|