1 00:00:00,000 --> 00:00:05,587 2 00:00:05,587 --> 00:00:07,670 דאַג לויד: אויב איר ווע געזען די ווידעא אויף רעקורסיאָן, 3 00:00:07,670 --> 00:00:10,170 דער גאנצער פּראָצעס זאל האָבן געווען אַ קליין ביסל מאַדזשיקאַל. 4 00:00:10,170 --> 00:00:10,930 ווי טוט עס אַרבעט? 5 00:00:10,930 --> 00:00:15,010 ווי טאָן די פֿעיִקייטן וויסן אַז זיי דאַרפֿן צו וואַרטן און וואַרטן פֿאַר אנדערן ווערט 6 00:00:15,010 --> 00:00:19,150 צו צוריקקומען פון אַ אַנדערש פֿונקציע רופן אין סדר צו באַקומען די רעזולטאַט מיר ווילן? 7 00:00:19,150 --> 00:00:22,550 >> נו, די סיבה דעם אַרבעט איז ווייַל פון עפּעס באקאנט ווי די רופן אָנלייגן. 8 00:00:22,550 --> 00:00:26,360 ווען איר רופן אַ פֿונקציע, די סיסטעם שטעלט באַזונדער אָרט אין זכּרון 9 00:00:26,360 --> 00:00:28,120 פֿאַר אַז פֿונקציע צו טאָן זייַן אַרבעט. 10 00:00:28,120 --> 00:00:31,720 און מיר רופן די טשאַנגקס פון זכּרון אַז זענען ווייל שטעלן באַזונדער פֿאַר יעדער פֿונקציע 11 00:00:31,720 --> 00:00:35,670 רופן אַ אָנלייגן ראַם אָדער אַ פֿונקציע ראַם. 12 00:00:35,670 --> 00:00:38,290 און ווי איר זאל דערוואַרטן, די אָנלייגן ראָמען 13 00:00:38,290 --> 00:00:41,000 לעבן אויף די אָנלייגן טייל פון זכּרון. 14 00:00:41,000 --> 00:00:43,960 15 00:00:43,960 --> 00:00:47,540 >> מער ווי איין פֿונקציע אָנלייגן ראַם קענען עקסיסטירן אין זיקאָרן אין אַ געגעבן צייַט. 16 00:00:47,540 --> 00:00:51,240 אויב הויפּט קאַללס אַ פֿונקציע מאַך, און מאַך קאַללס ריכטונג, 17 00:00:51,240 --> 00:00:54,460 אַלע דרייַ פֿעיִקייטן האָבן עפענען ראָמען. 18 00:00:54,460 --> 00:00:57,350 אבער זיי טאָן ניט אַלע האָבן אַקטיוו ראָמען. 19 00:00:57,350 --> 00:00:59,410 די ראָמען זענען עריינדזשד אין אַ אָנלייגן. 20 00:00:59,410 --> 00:01:01,820 און די ראַם פון די רובֿ לעצטנס גערופֿן 21 00:01:01,820 --> 00:01:04,390 פֿונקציע איז שטענדיק אויף שפּיץ פון דעם אָנלייגן. 22 00:01:04,390 --> 00:01:07,150 און וואָס איז שטענדיק אַקטיוו ראַם. 23 00:01:07,150 --> 00:01:10,420 עס ס נאָר טאַקע אלץ איינער פֿונקציע אַז ס אַקטיוו אין אַ מאָל. 24 00:01:10,420 --> 00:01:12,420 עס ס דער איינער אויף שפּיץ פון דעם אָנלייגן. 25 00:01:12,420 --> 00:01:17,620 >> ווען אַ פֿונקציע קאַללס אנדערן פונקציאָנירן, עס סאָרט פון דריקט פּויזע. 26 00:01:17,620 --> 00:01:20,590 עס סאָרט פון איז אויף האַלטן, ווארטן. 27 00:01:20,590 --> 00:01:24,050 און אנדערן אָנלייגן ראַם איז פּושט אַנטו דעם אָנלייגן אויף שפּיץ פון עס. 28 00:01:24,050 --> 00:01:26,150 און אַז ווערט די אַקטיוו ראַם. 29 00:01:26,150 --> 00:01:28,600 און די ראַם מיד ונטער עס דאַרף צו וואַרטן 30 00:01:28,600 --> 00:01:33,560 ביז עס איז ווידער די אַקטיוו ראַם איידער עס קענען נעמענ זיכ ווידער זייַן ווערק. 31 00:01:33,560 --> 00:01:35,870 ווען אַ פֿונקציע איז גאַנץ און עס ס געטאן, 32 00:01:35,870 --> 00:01:37,720 זייַן ראַם איז פּאַפּט אַוועק דעם אָנלייגן. 33 00:01:37,720 --> 00:01:38,950 אַז ס די טערמינאָלאָגיע. 34 00:01:38,950 --> 00:01:41,110 און די ראַם מיד ונטער עס, ווי איך נאָר געזאגט, 35 00:01:41,110 --> 00:01:42,880 ווערט די נייַ אַקטיוו ראַם. 36 00:01:42,880 --> 00:01:45,960 >> און אויב עס קאַללס אנדערן פֿונקציע, עס ס געגאנגען צו פּויזע ווידער. 37 00:01:45,960 --> 00:01:49,290 אז ניו פֿונקציע ס אָנלייגן ראַם וועט זיין פּושט אַנטו די שפּיץ פון די אָנלייגן. 38 00:01:49,290 --> 00:01:50,650 עס וועט טאָן זייַן אַרבעט. 39 00:01:50,650 --> 00:01:52,100 עס זאל קנאַל צוריק אַוועק. 40 00:01:52,100 --> 00:01:55,630 און די אנדערע פֿונקציע ונטער עס קענען נעמענ זיכ ווידער ווידער. 41 00:01:55,630 --> 00:02:00,080 >> אַזוי לאָזן ס גיין דורך דעם ווידער, קוקן ביי דעם געדאַנק פון די פאַקטאָריאַל פונקציאָנירן 42 00:02:00,080 --> 00:02:03,070 אַז מיר Defined אין די רעקורסיאָן וידאו צו זען 43 00:02:03,070 --> 00:02:07,770 פּונקט ווי די מאַגיש הינטער דעם רעקורסיווע פּראָצעס איז גענומען אָרט. 44 00:02:07,770 --> 00:02:09,870 אזוי דעם איז אונדזער גאנצע טעקע, רעכט? 45 00:02:09,870 --> 00:02:14,000 מיר Defined צוויי פונקטיאָנס-- הויפּט און פאַקט. 46 00:02:14,000 --> 00:02:15,980 און ווי מיר זאל דערוואַרטן, קיין C פּראָגראַם איז געגאנגען 47 00:02:15,980 --> 00:02:18,470 צו אָנהייבן אין דער ערשטער שורה פון הויפּט. 48 00:02:18,470 --> 00:02:21,660 >> אַזוי מיר שאַפֿן אַ נייַ אָנלייגן ראַם פֿאַר הויפּט. 49 00:02:21,660 --> 00:02:23,320 און עס ס געגאנגען צו נעמען פליסנדיק. 50 00:02:23,320 --> 00:02:25,270 הויפּט קאַללס פּרינטף. 51 00:02:25,270 --> 00:02:29,390 און פּרינטף איז געגאנגען צו דרוקן אויס פאַקטאָריאַל פון 5. 52 00:02:29,390 --> 00:02:31,440 נו, עס טוט ניט וויסן וואָס פאַקטאָריאַל פון 5 איז, 53 00:02:31,440 --> 00:02:35,620 און אַזוי דעם רוף איז שוין דיפּענדינג אויף אן אנדער פֿונקציע רופן. 54 00:02:35,620 --> 00:02:37,270 אזוי הויפּט איז געגאנגען צו פּויזע רעכט דאָרט. 55 00:02:37,270 --> 00:02:39,103 איך בין גאַנאַ לאָזן זייַן פייַל רעכט דאָרט, קאָליר 56 00:02:39,103 --> 00:02:41,360 עס די זעלבע קאָליר ווי די אָנלייגן ראַם אויף די רעכט, 57 00:02:41,360 --> 00:02:47,720 צו אָנווייַזן אַז הויפּט איז געגאנגען צו פרירן דאָ בשעת פאַקטאָריאַל פון 5 איז גערופֿן. 58 00:02:47,720 --> 00:02:49,300 >> אַזוי פאַקטאָריאַל פון 5 איז גערופֿן. 59 00:02:49,300 --> 00:02:53,160 און עס ס געגאנגען צו אָנהייבן בייַ די זייער אָנהייב פון די פאַקטאָריאַל פונקציאָנירן. 60 00:02:53,160 --> 00:02:55,440 עס בעט די קשיא איך גלייַך צו 1? 61 00:02:55,440 --> 00:02:56,810 איז 5 גלייַך צו 1? 62 00:02:56,810 --> 00:02:57,410 נו, קיין. 63 00:02:57,410 --> 00:03:01,110 אַזוי עס ס געגאנגען צו גיין אַראָפּ צו די אַנדערש טייל, צוריקקומען N מאל 64 00:03:01,110 --> 00:03:02,990 פאַקטאָריאַל פון N מינוס 1. 65 00:03:02,990 --> 00:03:03,490 נו, גוט. 66 00:03:03,490 --> 00:03:07,070 >> אַזוי איצט, פאַקטאָריאַל פון 5 איז דיפּענדינג אויף אן אנדער רוף 67 00:03:07,070 --> 00:03:09,740 צו פאַקטאָריאַל, פּאַסינג אין 4 ווי דעם פּאַראַמעטער. 68 00:03:09,740 --> 00:03:14,210 און אַזוי די פאַקטאָריאַל פון 5 ראַם, אַז רויט ראַם, 69 00:03:14,210 --> 00:03:17,160 איז געגאנגען צו פרירן רעכט דאָרט אין אַז שורה איך'ווע אנגעוויזן 70 00:03:17,160 --> 00:03:21,914 און וואַרטן פֿאַר פאַקטאָריאַל פון 4 צו ענדיקן וואָס עס דאַרף צו טאָן אַזוי אַז דעמאָלט עס 71 00:03:21,914 --> 00:03:23,330 קענען ווערן די אַקטיוו ראַם ווידער. 72 00:03:23,330 --> 00:03:26,890 >> אַזוי פאַקטאָריאַל פון 4 סטאַרץ בייַ די אָנהייב פון פאַקטאָריאַל. 73 00:03:26,890 --> 00:03:28,556 איז 4 גלייַך צו 1? 74 00:03:28,556 --> 00:03:30,180 ניין, אַזוי עס ס געגאנגען צו טאָן די זעלבע זאַך. 75 00:03:30,180 --> 00:03:31,590 עס ס געגאנגען צו גיין אַראָפּ די אַנדערש צווייַג. 76 00:03:31,590 --> 00:03:33,240 עס ס געגאנגען צו באַקומען צו אַז שורה פון קאָד. 77 00:03:33,240 --> 00:03:35,710 גוט, איך בין געגאנגען צו צוריקקומען פיר מאל. 78 00:03:35,710 --> 00:03:41,270 אָה, פאַקטאָריאַל פון 3-- אַזוי פאַקטאָריאַל פון 4 דעפּענדס אויף פאַקטאָריאַל פון 3 פינישינג. 79 00:03:41,270 --> 00:03:43,055 >> און אַזוי עס דאַרף צו רופן פאַקטאָריאַל פון 3. 80 00:03:43,055 --> 00:03:45,180 און אַז ס גאַנאַ גיין דורך דער זעלביקער פּראָצעס ווידער. 81 00:03:45,180 --> 00:03:48,200 עס סטאַרץ דורך, געץ דאָ. 82 00:03:48,200 --> 00:03:50,980 פאַקטאָריאַל פון 3 דעפּענדס אויף פאַקטאָריאַל פון 1. 83 00:03:50,980 --> 00:03:53,750 אַזוי פאַקטאָריאַל פון 2 סטאַרץ, געץ דאָ. 84 00:03:53,750 --> 00:03:56,310 עס דעפּענדס אויף פאַקטאָריאַל פון 1. 85 00:03:56,310 --> 00:03:57,430 פאַקטאָריאַל פון 1 סטאַרץ. 86 00:03:57,430 --> 00:03:57,650 >> קעשורע. 87 00:03:57,650 --> 00:03:59,775 אַזוי איצט, מיר ניטאָ געטינג ערגעץ טשיקאַווע, רעכט? 88 00:03:59,775 --> 00:04:02,190 אַזוי איצט, 1 איז גלייַך צו 1. 89 00:04:02,190 --> 00:04:05,130 און אַזוי מיר צוריקקומען 1. 90 00:04:05,130 --> 00:04:06,770 אין דעם פונט, מיר זענען אומגעקערט. 91 00:04:06,770 --> 00:04:07,880 די פֿונקציע ס געטאן. 92 00:04:07,880 --> 00:04:11,140 עס ס נאַטור יס-- עס ס גאָרנישט אַנדערש פֿאַר עס צו טאָן, 93 00:04:11,140 --> 00:04:17,006 און אַזוי די אָנלייגן ראַם פֿאַר פאַקטאָריאַל פון 1 פּאַפּס אַוועק. 94 00:04:17,006 --> 00:04:17,589 עס ס פאַרטיק. 95 00:04:17,589 --> 00:04:19,480 עס אומגעקערט 1. 96 00:04:19,480 --> 00:04:23,370 און איצט, פאַקטאָריאַל פון 2, וואָס איז די ראַם מיד ונטער 97 00:04:23,370 --> 00:04:26,160 אין דעם אָנלייגן, ווערט די אַקטיוו ראַם. 98 00:04:26,160 --> 00:04:29,030 >> און עס קענען קלייַבן זיך פּונקט ווו עס לינקס אַוועק. 99 00:04:29,030 --> 00:04:32,240 עס ס שוין ווארטן פֿאַר אַ פאַקטאָריאַל פון 1 צו ענדיקן זייַן אַרבעט. 100 00:04:32,240 --> 00:04:33,610 עס איז איצט פאַרטיק. 101 00:04:33,610 --> 00:04:35,510 און אַזוי דאָ מיר זענען. 102 00:04:35,510 --> 00:04:38,080 >> פאַקטאָריאַל פון 1 אומגעקערט אַ ווערט פון 1. 103 00:04:38,080 --> 00:04:42,430 אַזוי פאַקטאָריאַל פון 2 קענען זאָגן צוריקקומען 2 מאל 1. 104 00:04:42,430 --> 00:04:43,680 זייַן אַרבעט איז איצט געטאן. 105 00:04:43,680 --> 00:04:49,110 עס ס אומגעקערט 2 צו פאַקטאָריאַל פון 3, וואָס איז געווען ווארטן פֿאַר אים. 106 00:04:49,110 --> 00:04:53,370 פאַקטאָריאַל פון 3 איז איצט די שפּיץ ראַם, די אַקטיוו ראַם אין די אָנלייגן. 107 00:04:53,370 --> 00:04:58,617 און אַזוי עס זאגט, גוט, געזונט, איך בין געגאנגען צו צוריקקומען 3 מאל 2, וואָס איז 6. 108 00:04:58,617 --> 00:05:00,700 און איך בין געגאנגען צו געבן אַז ווערט צוריק צו פאַקטאָריאַל 109 00:05:00,700 --> 00:05:03,430 פון 4, וואָס האט שוין ווארטן פֿאַר מיר. 110 00:05:03,430 --> 00:05:04,500 איך בין געטאן. 111 00:05:04,500 --> 00:05:09,410 פאַקטאָריאַל פון 3 פּאַפּס אַוועק דעם אָנלייגן, און פאַקטאָריאַל פון 4 איז איצט די אַקטיוו ראַם. 112 00:05:09,410 --> 00:05:13,510 >> 4 זאגט, גוט, איך בין געגאנגען צו צוריקקומען 4 מאל די פאַקטאָריאַל פון 3, וואָס איז געווען זעקס. 113 00:05:13,510 --> 00:05:15,980 וואס איז געווען פון ווערט אַז פאַקטאָריאַל פון 3 אומגעקערט. 114 00:05:15,980 --> 00:05:19,010 און אַזוי 4 מאל 6 איז 24. 115 00:05:19,010 --> 00:05:20,990 און איך בין געגאנגען צו פאָרן אַז צוריק צו פאַקטאָריאַל 116 00:05:20,990 --> 00:05:23,160 פון 5, וואָס האט שוין ווארטן פֿאַר מיר. 117 00:05:23,160 --> 00:05:25,270 פאַקטאָריאַל פון 5 איז איצט די אַקטיוו ראַם. 118 00:05:25,270 --> 00:05:30,700 עס ס געגאנגען צו צוריקקומען 5 מאל פאַקטאָריאַל פון 4-- 5 מאל 24, אָדער 120-- 119 00:05:30,700 --> 00:05:32,722 און געבן וואָס ווערט צוריק צו הויפּט, וואָס האט 120 00:05:32,722 --> 00:05:35,680 שוין ווארטן זייער געדולדיק פֿאַר אַ לאַנג אין די דנאָ פון דעם אָנלייגן. 121 00:05:35,680 --> 00:05:36,640 >> עס ס ווו עס אנגעהויבן. 122 00:05:36,640 --> 00:05:37,670 עס געמאכט דעם רוף. 123 00:05:37,670 --> 00:05:39,400 עטלעכע ראָמען גענומען איבער אין די שפּיץ. 124 00:05:39,400 --> 00:05:41,890 עס איז איצט צוריק אויף שפּיץ פון דעם אָנלייגן. 125 00:05:41,890 --> 00:05:43,450 עס ס די אַקטיוו ראַם. 126 00:05:43,450 --> 00:05:47,810 אזוי הויפּט גאַט די ווערט 120 צוריק פון פאַקטאָריאַל פון 5. 127 00:05:47,810 --> 00:05:50,750 עס ס שוין ווארטן צו דרוקן אויס אַז ווערט. 128 00:05:50,750 --> 00:05:51,657 און דעמאָלט עס ס געטאן. 129 00:05:51,657 --> 00:05:53,240 עס ס ניט מער שורות פון קאָד אין הויפּט. 130 00:05:53,240 --> 00:05:56,800 אזוי הויפּט ס ראַם פּאַפּס אַוועק דעם אָנלייגן, און מיר רע געטאן. 131 00:05:56,800 --> 00:05:58,992 >> און אַז ס ווי רעקורסיאָן אַרבעט. 132 00:05:58,992 --> 00:06:00,200 אַז ס ווי אָנלייגן ראָמען אַרבעט. 133 00:06:00,200 --> 00:06:03,120 יענע פֿונקציע קאַללס וואָס געשען ביז אַהער 134 00:06:03,120 --> 00:06:06,620 זענען נאָר אויף פּויזע, ווארטן פֿאַר די סאַבסאַקוואַנט קאַללס 135 00:06:06,620 --> 00:06:12,050 צו ענדיקן אַזוי זיי קענען ווערן די אַקטיוו ראַם און ענדיקן וואָס זיי דאַרפֿן צו טאָן. 136 00:06:12,050 --> 00:06:13,060 >> איך בין דאַג לויד. 137 00:06:13,060 --> 00:06:14,880 דאס איז קס50. 138 00:06:14,880 --> 00:06:16,580