דאַג לויד: אויב איר ווע געזען די ווידעא אויף רעקורסיאָן,
דער גאנצער פּראָצעס זאל האָבן געווען אַ קליין ביסל מאַדזשיקאַל.
ווי טוט עס אַרבעט?
ווי טאָן די פֿעיִקייטן וויסן אַז זיי דאַרפֿן צו וואַרטן און וואַרטן פֿאַר אנדערן ווערט
צו צוריקקומען פון אַ אַנדערש פֿונקציע רופן אין סדר צו באַקומען די רעזולטאַט מיר ווילן?
>> נו, די סיבה דעם אַרבעט איז ווייַל פון עפּעס באקאנט ווי די רופן אָנלייגן.
ווען איר רופן אַ פֿונקציע, די סיסטעם שטעלט באַזונדער אָרט אין זכּרון
פֿאַר אַז פֿונקציע צו טאָן זייַן אַרבעט.
און מיר רופן די טשאַנגקס פון זכּרון אַז זענען ווייל שטעלן באַזונדער פֿאַר יעדער פֿונקציע
רופן אַ אָנלייגן ראַם אָדער אַ פֿונקציע ראַם.
און ווי איר זאל דערוואַרטן, די אָנלייגן ראָמען
לעבן אויף די אָנלייגן טייל פון זכּרון.
>> מער ווי איין פֿונקציע אָנלייגן ראַם קענען עקסיסטירן אין זיקאָרן אין אַ געגעבן צייַט.
אויב הויפּט קאַללס אַ פֿונקציע מאַך, און מאַך קאַללס ריכטונג,
אַלע דרייַ פֿעיִקייטן האָבן עפענען ראָמען.
אבער זיי טאָן ניט אַלע האָבן אַקטיוו ראָמען.
די ראָמען זענען עריינדזשד אין אַ אָנלייגן.
און די ראַם פון די רובֿ לעצטנס גערופֿן
פֿונקציע איז שטענדיק אויף שפּיץ פון דעם אָנלייגן.
און וואָס איז שטענדיק אַקטיוו ראַם.
עס ס נאָר טאַקע אלץ איינער פֿונקציע אַז ס אַקטיוו אין אַ מאָל.
עס ס דער איינער אויף שפּיץ פון דעם אָנלייגן.
>> ווען אַ פֿונקציע קאַללס אנדערן פונקציאָנירן, עס סאָרט פון דריקט פּויזע.
עס סאָרט פון איז אויף האַלטן, ווארטן.
און אנדערן אָנלייגן ראַם איז פּושט אַנטו דעם אָנלייגן אויף שפּיץ פון עס.
און אַז ווערט די אַקטיוו ראַם.
און די ראַם מיד ונטער עס דאַרף צו וואַרטן
ביז עס איז ווידער די אַקטיוו ראַם איידער עס קענען נעמענ זיכ ווידער זייַן ווערק.
ווען אַ פֿונקציע איז גאַנץ און עס ס געטאן,
זייַן ראַם איז פּאַפּט אַוועק דעם אָנלייגן.
אַז ס די טערמינאָלאָגיע.
און די ראַם מיד ונטער עס, ווי איך נאָר געזאגט,
ווערט די נייַ אַקטיוו ראַם.
>> און אויב עס קאַללס אנדערן פֿונקציע, עס ס געגאנגען צו פּויזע ווידער.
אז ניו פֿונקציע ס אָנלייגן ראַם וועט זיין פּושט אַנטו די שפּיץ פון די אָנלייגן.
עס וועט טאָן זייַן אַרבעט.
עס זאל קנאַל צוריק אַוועק.
און די אנדערע פֿונקציע ונטער עס קענען נעמענ זיכ ווידער ווידער.
>> אַזוי לאָזן ס גיין דורך דעם ווידער, קוקן ביי דעם געדאַנק פון די פאַקטאָריאַל פונקציאָנירן
אַז מיר Defined אין די רעקורסיאָן וידאו צו זען
פּונקט ווי די מאַגיש הינטער דעם רעקורסיווע פּראָצעס איז גענומען אָרט.
אזוי דעם איז אונדזער גאנצע טעקע, רעכט?
מיר Defined צוויי פונקטיאָנס-- הויפּט און פאַקט.
און ווי מיר זאל דערוואַרטן, קיין C פּראָגראַם איז געגאנגען
צו אָנהייבן אין דער ערשטער שורה פון הויפּט.
>> אַזוי מיר שאַפֿן אַ נייַ אָנלייגן ראַם פֿאַר הויפּט.
און עס ס געגאנגען צו נעמען פליסנדיק.
הויפּט קאַללס פּרינטף.
און פּרינטף איז געגאנגען צו דרוקן אויס פאַקטאָריאַל פון 5.
נו, עס טוט ניט וויסן וואָס פאַקטאָריאַל פון 5 איז,
און אַזוי דעם רוף איז שוין דיפּענדינג אויף אן אנדער פֿונקציע רופן.
אזוי הויפּט איז געגאנגען צו פּויזע רעכט דאָרט.
איך בין גאַנאַ לאָזן זייַן פייַל רעכט דאָרט, קאָליר
עס די זעלבע קאָליר ווי די אָנלייגן ראַם אויף די רעכט,
צו אָנווייַזן אַז הויפּט איז געגאנגען צו פרירן דאָ בשעת פאַקטאָריאַל פון 5 איז גערופֿן.
>> אַזוי פאַקטאָריאַל פון 5 איז גערופֿן.
און עס ס געגאנגען צו אָנהייבן בייַ די זייער אָנהייב פון די פאַקטאָריאַל פונקציאָנירן.
עס בעט די קשיא איך גלייַך צו 1?
איז 5 גלייַך צו 1?
נו, קיין.
אַזוי עס ס געגאנגען צו גיין אַראָפּ צו די אַנדערש טייל, צוריקקומען N מאל
פאַקטאָריאַל פון N מינוס 1.
נו, גוט.
>> אַזוי איצט, פאַקטאָריאַל פון 5 איז דיפּענדינג אויף אן אנדער רוף
צו פאַקטאָריאַל, פּאַסינג אין 4 ווי דעם פּאַראַמעטער.
און אַזוי די פאַקטאָריאַל פון 5 ראַם, אַז רויט ראַם,
איז געגאנגען צו פרירן רעכט דאָרט אין אַז שורה איך'ווע אנגעוויזן
און וואַרטן פֿאַר פאַקטאָריאַל פון 4 צו ענדיקן וואָס עס דאַרף צו טאָן אַזוי אַז דעמאָלט עס
קענען ווערן די אַקטיוו ראַם ווידער.
>> אַזוי פאַקטאָריאַל פון 4 סטאַרץ בייַ די אָנהייב פון פאַקטאָריאַל.
איז 4 גלייַך צו 1?
ניין, אַזוי עס ס געגאנגען צו טאָן די זעלבע זאַך.
עס ס געגאנגען צו גיין אַראָפּ די אַנדערש צווייַג.
עס ס געגאנגען צו באַקומען צו אַז שורה פון קאָד.
גוט, איך בין געגאנגען צו צוריקקומען פיר מאל.
אָה, פאַקטאָריאַל פון 3-- אַזוי פאַקטאָריאַל פון 4 דעפּענדס אויף פאַקטאָריאַל פון 3 פינישינג.
>> און אַזוי עס דאַרף צו רופן פאַקטאָריאַל פון 3.
און אַז ס גאַנאַ גיין דורך דער זעלביקער פּראָצעס ווידער.
עס סטאַרץ דורך, געץ דאָ.
פאַקטאָריאַל פון 3 דעפּענדס אויף פאַקטאָריאַל פון 1.
אַזוי פאַקטאָריאַל פון 2 סטאַרץ, געץ דאָ.
עס דעפּענדס אויף פאַקטאָריאַל פון 1.
פאַקטאָריאַל פון 1 סטאַרץ.
>> קעשורע.
אַזוי איצט, מיר ניטאָ געטינג ערגעץ טשיקאַווע, רעכט?
אַזוי איצט, 1 איז גלייַך צו 1.
און אַזוי מיר צוריקקומען 1.
אין דעם פונט, מיר זענען אומגעקערט.
די פֿונקציע ס געטאן.
עס ס נאַטור יס-- עס ס גאָרנישט אַנדערש פֿאַר עס צו טאָן,
און אַזוי די אָנלייגן ראַם פֿאַר פאַקטאָריאַל פון 1 פּאַפּס אַוועק.
עס ס פאַרטיק.
עס אומגעקערט 1.
און איצט, פאַקטאָריאַל פון 2, וואָס איז די ראַם מיד ונטער
אין דעם אָנלייגן, ווערט די אַקטיוו ראַם.
>> און עס קענען קלייַבן זיך פּונקט ווו עס לינקס אַוועק.
עס ס שוין ווארטן פֿאַר אַ פאַקטאָריאַל פון 1 צו ענדיקן זייַן אַרבעט.
עס איז איצט פאַרטיק.
און אַזוי דאָ מיר זענען.
>> פאַקטאָריאַל פון 1 אומגעקערט אַ ווערט פון 1.
אַזוי פאַקטאָריאַל פון 2 קענען זאָגן צוריקקומען 2 מאל 1.
זייַן אַרבעט איז איצט געטאן.
עס ס אומגעקערט 2 צו פאַקטאָריאַל פון 3, וואָס איז געווען ווארטן פֿאַר אים.
פאַקטאָריאַל פון 3 איז איצט די שפּיץ ראַם, די אַקטיוו ראַם אין די אָנלייגן.
און אַזוי עס זאגט, גוט, געזונט, איך בין געגאנגען צו צוריקקומען 3 מאל 2, וואָס איז 6.
און איך בין געגאנגען צו געבן אַז ווערט צוריק צו פאַקטאָריאַל
פון 4, וואָס האט שוין ווארטן פֿאַר מיר.
איך בין געטאן.
פאַקטאָריאַל פון 3 פּאַפּס אַוועק דעם אָנלייגן, און פאַקטאָריאַל פון 4 איז איצט די אַקטיוו ראַם.
>> 4 זאגט, גוט, איך בין געגאנגען צו צוריקקומען 4 מאל די פאַקטאָריאַל פון 3, וואָס איז געווען זעקס.
וואס איז געווען פון ווערט אַז פאַקטאָריאַל פון 3 אומגעקערט.
און אַזוי 4 מאל 6 איז 24.
און איך בין געגאנגען צו פאָרן אַז צוריק צו פאַקטאָריאַל
פון 5, וואָס האט שוין ווארטן פֿאַר מיר.
פאַקטאָריאַל פון 5 איז איצט די אַקטיוו ראַם.
עס ס געגאנגען צו צוריקקומען 5 מאל פאַקטאָריאַל פון 4-- 5 מאל 24, אָדער 120--
און געבן וואָס ווערט צוריק צו הויפּט, וואָס האט
שוין ווארטן זייער געדולדיק פֿאַר אַ לאַנג אין די דנאָ פון דעם אָנלייגן.
>> עס ס ווו עס אנגעהויבן.
עס געמאכט דעם רוף.
עטלעכע ראָמען גענומען איבער אין די שפּיץ.
עס איז איצט צוריק אויף שפּיץ פון דעם אָנלייגן.
עס ס די אַקטיוו ראַם.
אזוי הויפּט גאַט די ווערט 120 צוריק פון פאַקטאָריאַל פון 5.
עס ס שוין ווארטן צו דרוקן אויס אַז ווערט.
און דעמאָלט עס ס געטאן.
עס ס ניט מער שורות פון קאָד אין הויפּט.
אזוי הויפּט ס ראַם פּאַפּס אַוועק דעם אָנלייגן, און מיר רע געטאן.
>> און אַז ס ווי רעקורסיאָן אַרבעט.
אַז ס ווי אָנלייגן ראָמען אַרבעט.
יענע פֿונקציע קאַללס וואָס געשען ביז אַהער
זענען נאָר אויף פּויזע, ווארטן פֿאַר די סאַבסאַקוואַנט קאַללס
צו ענדיקן אַזוי זיי קענען ווערן די אַקטיוו ראַם און ענדיקן וואָס זיי דאַרפֿן צו טאָן.
>> איך בין דאַג לויד.
דאס איז קס50.