1 00:00:00,000 --> 00:00:05,587 2 00:00:05,587 --> 00:00:07,670 Doug LLOYD: Jekk inti stajt tidher l-video fuq recursion, 3 00:00:07,670 --> 00:00:10,170 il-proċess kollu jista 'jkollhom deher ftit maġika. 4 00:00:10,170 --> 00:00:10,930 Kif taħdem? 5 00:00:10,930 --> 00:00:15,010 Kif il-funzjonijiet jafu li bżonn li tistenna u stenna għall-valur ieħor 6 00:00:15,010 --> 00:00:19,150 li jirritornaw minn funzjoni differenti sejħa sabiex tikseb ir-riżultat li rridu? 7 00:00:19,150 --> 00:00:22,550 >> Ukoll, ir-raġuni dan jaħdem huwa għaliex ta 'xi ħaġa magħrufa bħala l-munzell sejħa. 8 00:00:22,550 --> 00:00:26,360 Meta inti sejħa funzjoni, il- sistema twarrab ispazju fil-memorja 9 00:00:26,360 --> 00:00:28,120 għal dik il-funzjoni li jagħmlu xogħol tagħha. 10 00:00:28,120 --> 00:00:31,720 U aħna sejħa dawn biċċiet ta 'memorja li qed jiġu mwarrba għal kull funzjoni 11 00:00:31,720 --> 00:00:35,670 sejħa qafas munzell jew qafas funzjoni. 12 00:00:35,670 --> 00:00:38,290 U kif inti tista 'tistenna, dawn il-frejms munzell 13 00:00:38,290 --> 00:00:41,000 jgħixu fuq il-parti munzell ta 'memorja. 14 00:00:41,000 --> 00:00:43,960 15 00:00:43,960 --> 00:00:47,540 >> Qafas munzell aktar minn funzjoni waħda jista 'jeżisti fil-memorja fi żmien partikolari. 16 00:00:47,540 --> 00:00:51,240 Jekk ewlenija jitlob mossa funzjoni, u jimxu jitlob direzzjoni, 17 00:00:51,240 --> 00:00:54,460 it-tliet funzjonijiet jkollhom frames miftuħa. 18 00:00:54,460 --> 00:00:57,350 Iżda dawn mhux kollha għandhom frames attivi. 19 00:00:57,350 --> 00:00:59,410 Dawn l-oqsfa huma rranġati munzell. 20 00:00:59,410 --> 00:01:01,820 U l-qafas tal- aktar reċentement imsejjaħ 21 00:01:01,820 --> 00:01:04,390 funzjoni huwa dejjem fuq quċċata tal-munzell. 22 00:01:04,390 --> 00:01:07,150 U li huwa dejjem l-qafas attiva. 23 00:01:07,150 --> 00:01:10,420 Hemm biss verament qatt wieħed funzjoni li l-attiv fi żmien. 24 00:01:10,420 --> 00:01:12,420 Hu l-waħda fuq quċċata tal-munzell. 25 00:01:12,420 --> 00:01:17,620 >> Meta funzjoni jitlob ieħor funzjoni, huwa tip ta 'preses nieqaf. 26 00:01:17,620 --> 00:01:20,590 Huwa tip ta 'huwa fuq istiva, stennija. 27 00:01:20,590 --> 00:01:24,050 U l-qafas munzell ieħor hu imbuttata fuq il-munzell fuq quċċata ta 'dan. 28 00:01:24,050 --> 00:01:26,150 U li ssir l-qafas attiva. 29 00:01:26,150 --> 00:01:28,600 U l-qafas immedjatament hawn taħt jeħtieġ li tistenna 30 00:01:28,600 --> 00:01:33,560 sakemm għal darb'oħra huwa l-qafas attiva qabel ma tkun tista jkompli b'ħidmietu. 31 00:01:33,560 --> 00:01:35,870 Meta funzjoni hija kompluta u dan isir, 32 00:01:35,870 --> 00:01:37,720 frejm tagħha huwa popped off-munzell. 33 00:01:37,720 --> 00:01:38,950 Dik hija l-terminoloġija. 34 00:01:38,950 --> 00:01:41,110 U l-qafas immedjatament taħtu, kif I biss qal, 35 00:01:41,110 --> 00:01:42,880 isir il-qafas attiva ġdida. 36 00:01:42,880 --> 00:01:45,960 >> U jekk jitlob funzjoni oħra, li għaddej biex nieqaf mill-ġdid. 37 00:01:45,960 --> 00:01:49,290 Qafas munzell dik il-funzjoni ġdida se jiġu mbuttati fuq il-quċċata tal-munzell. 38 00:01:49,290 --> 00:01:50,650 Hija ser jagħmlu xogħol tagħha. 39 00:01:50,650 --> 00:01:52,100 Jista pop lura off. 40 00:01:52,100 --> 00:01:55,630 U l-funzjoni oħra taħtha tista 'tkompli mill-ġdid. 41 00:01:55,630 --> 00:02:00,080 >> Mela ejja jmorru permezz ta 'dan mill-ġdid, tfittex fuq l-idea tal-funzjoni fattorjali 42 00:02:00,080 --> 00:02:03,070 li aħna definit fil- recursion video biex tara 43 00:02:03,070 --> 00:02:07,770 eżattament kif l-magic wara dan proċess rikursivi qed iseħħ. 44 00:02:07,770 --> 00:02:09,870 Allura dan huwa fajl sħiħ tagħna, id-dritt? 45 00:02:09,870 --> 00:02:14,000 Aħna definiti żewġ functions-- prinċipali u fatt. 46 00:02:14,000 --> 00:02:15,980 U kif aħna tista 'tistenna, kwalunkwe programm C va 47 00:02:15,980 --> 00:02:18,470 li jibda fl-ewwel linja ta 'prinċipali. 48 00:02:18,470 --> 00:02:21,660 >> Allura aħna joħolqu qafas ġdid munzell għall prinċipali. 49 00:02:21,660 --> 00:02:23,320 U li għaddej biex tibda taħdem. 50 00:02:23,320 --> 00:02:25,270 Sejħiet ewlenin printf. 51 00:02:25,270 --> 00:02:29,390 U printf se jistampa fattorjali 5. 52 00:02:29,390 --> 00:02:31,440 Ukoll, hija ma kinitx taf liema fattorjali ta '5 huwa, 53 00:02:31,440 --> 00:02:35,620 u għalhekk din is-sejħa huwa diġà jiddependi fuq sejħa funzjoni oħra. 54 00:02:35,620 --> 00:02:37,270 Allura prinċipali se nieqaf hemm dritt. 55 00:02:37,270 --> 00:02:39,103 Jien gonna leave tagħha vleġġa hemm dritt, kulur 56 00:02:39,103 --> 00:02:41,360 l-istess kulur bħat- munzell qafas fuq il-lemin, 57 00:02:41,360 --> 00:02:47,720 biex jindikaw li ewlieni se jiffriża hawn filwaqt fattorjali tal-5 tissejjaħ. 58 00:02:47,720 --> 00:02:49,300 >> Allura fattorjali ta '5 tissejjaħ. 59 00:02:49,300 --> 00:02:53,160 U li għaddej biex tibda fil-ħafna bidu tal-funzjoni fattorjali. 60 00:02:53,160 --> 00:02:55,440 Hija tqajjem il-mistoqsija am I ugwali għal 1? 61 00:02:55,440 --> 00:02:56,810 Huwa 5 ugwali għal 1? 62 00:02:56,810 --> 00:02:57,410 Well, no. 63 00:02:57,410 --> 00:03:01,110 Allura li għaddej biex jinżlu għal il-parti inkella, ritorn n ħinijiet 64 00:03:01,110 --> 00:03:02,990 fattorjali ta 'n minus 1. 65 00:03:02,990 --> 00:03:03,490 Well, OK. 66 00:03:03,490 --> 00:03:07,070 >> Allura issa, fattorjali ta '5 huwa jiddependi fuq sejħa oħra 67 00:03:07,070 --> 00:03:09,740 li fattorjali, li jgħaddi f'4 bħala l-parametru. 68 00:03:09,740 --> 00:03:14,210 U għalhekk l-fattorjali ta 5 qafas, dak il-qafas aħmar, 69 00:03:14,210 --> 00:03:17,160 se friża hemm dritt f'dak linja stajt indikat 70 00:03:17,160 --> 00:03:21,914 u stenna għal fattorjali ta '4 biex jintemm dak li jeħtieġ li jsir dan li allura 71 00:03:21,914 --> 00:03:23,330 tista 'ssir l-qafas attiva mill-ġdid. 72 00:03:23,330 --> 00:03:26,890 >> Allura fattorjali ta '4 jibda fil il-bidu ta 'fattorjali. 73 00:03:26,890 --> 00:03:28,556 Huwa ta '4 ugwali għal 1? 74 00:03:28,556 --> 00:03:30,180 Le, hekk li għaddej biex jagħmlu l-istess ħaġa. 75 00:03:30,180 --> 00:03:31,590 Li għaddej biex jinżlu l-fergħa ieħor. 76 00:03:31,590 --> 00:03:33,240 Li għaddej biex tikseb sa dik il-linja tal-kodiċi. 77 00:03:33,240 --> 00:03:35,710 OK, jien ser jirritorna erba 'darbiet. 78 00:03:35,710 --> 00:03:41,270 Oh, fattorjali ta 3-- hekk fattorjali ta 4 tiddependi fuq fattorjali tat-3 irfinar. 79 00:03:41,270 --> 00:03:43,055 >> U għalhekk għandha bżonn iddur fattorjali ta '3. 80 00:03:43,055 --> 00:03:45,180 U li gonna jgħaddu l-istess proċess mill-ġdid. 81 00:03:45,180 --> 00:03:48,200 Huwa jibda permezz, gets hawn. 82 00:03:48,200 --> 00:03:50,980 Fattorjali ta 3 jiddependi fuq fattorjali ta '1. 83 00:03:50,980 --> 00:03:53,750 Allura fattorjali ta '2 tibda, gets hawn. 84 00:03:53,750 --> 00:03:56,310 Hija tiddependi fuq fattorjali ta 1. 85 00:03:56,310 --> 00:03:57,430 Fattorjali ta '1 jibda. 86 00:03:57,430 --> 00:03:57,650 >> KOLLOX SEW. 87 00:03:57,650 --> 00:03:59,775 Allura issa, aħna qed jkollna x'imkien interessanti, right? 88 00:03:59,775 --> 00:04:02,190 Allura issa, 1 huwa ugwali għal 1. 89 00:04:02,190 --> 00:04:05,130 U hekk nerġgħu lura 1. 90 00:04:05,130 --> 00:04:06,770 Wara dan, aħna qed jirritornaw. 91 00:04:06,770 --> 00:04:07,880 Isir il-funzjoni. 92 00:04:07,880 --> 00:04:11,140 Huwa imġieba is-- hemm xejn biex din tagħmel, 93 00:04:11,140 --> 00:04:17,006 u għalhekk il-qafas munzell għall fattorjali ta '1 pops off. 94 00:04:17,006 --> 00:04:17,589 Huwa lest. 95 00:04:17,589 --> 00:04:19,480 Hija lura 1. 96 00:04:19,480 --> 00:04:23,370 U issa, fattorjali ta '2, li kien il-qafas immedjatament taħt it 97 00:04:23,370 --> 00:04:26,160 fil-ċmieni, isir il-qafas attiva. 98 00:04:26,160 --> 00:04:29,030 >> U jista 'pick up eżattament fejn jitħalla 'off. 99 00:04:29,030 --> 00:04:32,240 Huwa ilhom jistennew għal fattorjali minn 1 sa jintemm ix-xogħol tagħha. 100 00:04:32,240 --> 00:04:33,610 Huwa issa lest. 101 00:04:33,610 --> 00:04:35,510 U hekk aħna qegħdin hawn. 102 00:04:35,510 --> 00:04:38,080 >> Fattorjali ta 1 ritornati valur ta '1. 103 00:04:38,080 --> 00:04:42,430 Allura fattorjali ta 2 jista jiġifieri ritorn 2 darbiet 1. 104 00:04:42,430 --> 00:04:43,680 Il-ħidma tiegħu issa qed isir. 105 00:04:43,680 --> 00:04:49,110 Huwa lura 2 sa fattorjali ta '3, li kienet qed tistenna dan. 106 00:04:49,110 --> 00:04:53,370 Fattorjali ta '3 issa huwa l-qafas ta' fuq, l-qafas attiva fil-ċmieni. 107 00:04:53,370 --> 00:04:58,617 U għalhekk jgħid, OK, ukoll, jien ser li jirritornaw 3 darbiet 2, li huwa 6. 108 00:04:58,617 --> 00:05:00,700 U jien ser jagħti dak valur lura għall fattorjali 109 00:05:00,700 --> 00:05:03,430 ta '4, li baqgħet tistenna lili. 110 00:05:03,430 --> 00:05:04,500 Jien jsir. 111 00:05:04,500 --> 00:05:09,410 Fattorjali ta '3 pops off-munzell, u fattorjali ta '4 issa huwa l-qafas attiva. 112 00:05:09,410 --> 00:05:13,510 >> 4 jgħid, OK, jien ser jirritorna 4 darbiet l fattorjali ta '3, li kien sitta. 113 00:05:13,510 --> 00:05:15,980 Dan kien ta 'valur li fattorjali ta '3 lura. 114 00:05:15,980 --> 00:05:19,010 U hekk 4 darbiet 6 huwa 24. 115 00:05:19,010 --> 00:05:20,990 U jien ser jgħaddu li lura għall fattorjali 116 00:05:20,990 --> 00:05:23,160 ta '5, li baqgħet tistenna lili. 117 00:05:23,160 --> 00:05:25,270 Fattorjali ta '5 issa hija l-qafas attiva. 118 00:05:25,270 --> 00:05:30,700 Huwa ser jirritorna 5 darbiet fattorjali ta 4-- 5 darbiet 24, jew 120-- 119 00:05:30,700 --> 00:05:32,722 u tagħti lil dak il-valur lura għall prinċipali, li għandha 120 00:05:32,722 --> 00:05:35,680 ilhom jistennew patiently ħafna għal żmien twil fil-qiegħ tal-munzell. 121 00:05:35,680 --> 00:05:36,640 >> Huwa fejn bdiet. 122 00:05:36,640 --> 00:05:37,670 Hija magħmula din is-sejħa. 123 00:05:37,670 --> 00:05:39,400 Diversi frames ħadet fil-quċċata. 124 00:05:39,400 --> 00:05:41,890 Issa huwa lura fuq nett tal-munzell. 125 00:05:41,890 --> 00:05:43,450 Hu l-qafas attiva. 126 00:05:43,450 --> 00:05:47,810 Allura prinċipali ltqajna l-valur 120 lura mill fattorjali ta '5. 127 00:05:47,810 --> 00:05:50,750 Huwa kien stennija biex jistampa dak il-valur. 128 00:05:50,750 --> 00:05:51,657 U allura dan isir. 129 00:05:51,657 --> 00:05:53,240 M'hemm l-ebda aktar linji ta 'kodiċi fil prinċipali. 130 00:05:53,240 --> 00:05:56,800 Allura frame prinċipali ta pops off il-munzell, u aħna qed isir. 131 00:05:56,800 --> 00:05:58,992 >> U li kif recursion xogħlijiet. 132 00:05:58,992 --> 00:06:00,200 Thats kif frames munzell jaħdmu. 133 00:06:00,200 --> 00:06:03,120 Dawk is-sejħiet funzjoni li ġara qabel 134 00:06:03,120 --> 00:06:06,620 huma biss fuq pause, stennija għas-sejħiet sussegwenti 135 00:06:06,620 --> 00:06:12,050 biex jintemm sabiex ikunu jistgħu jsiru l-attivi frejm u finitura dak li għandhom bżonn biex jagħmlu. 136 00:06:12,050 --> 00:06:13,060 >> Jien Doug Lloyd. 137 00:06:13,060 --> 00:06:14,880 Dan huwa CS50. 138 00:06:14,880 --> 00:06:16,580