1 00:00:00,000 --> 00:00:10,900 2 00:00:10,900 --> 00:00:15,860 >> Oratè 1: Tout dwa, kidonk sa a se Sa a se CS50 nan fen semèn senk. 3 00:00:15,860 --> 00:00:19,220 Epi sonje ke dènye fwa nou te kòmanse gade nan done yo amateur 4 00:00:19,220 --> 00:00:22,310 estrikti ki te kòmanse yo rezoud pwoblèm, ki te kòmanse prezante 5 00:00:22,310 --> 00:00:25,640 pwoblèm nouvo, men kle a nan sa a te sòt nan nan anfile ke nou 6 00:00:25,640 --> 00:00:27,940 te kòmanse fè soti nan ne ne. 7 00:00:27,940 --> 00:00:30,085 Se konsa, sa nan kou se yon lis separeman lye. 8 00:00:30,085 --> 00:00:31,960 Ak nan separeman lye, Mwen vle di gen nan sèlman yon sèl 9 00:00:31,960 --> 00:00:33,380 fil ant chak nan sa yo nœuds. 10 00:00:33,380 --> 00:00:35,890 Vire soti ou ka fè amateur bagay sa yo tankou lis doubl lye 11 00:00:35,890 --> 00:00:38,470 kijan ou gen yon flèch ale nan toude direksyon, ki 12 00:00:38,470 --> 00:00:40,320 ka ede ak sèten efikasite. 13 00:00:40,320 --> 00:00:42,000 Men, sa a rezoud pwoblèm nan? 14 00:00:42,000 --> 00:00:43,500 Ki sa ki pwoblèm sa a t 'rezoud? 15 00:00:43,500 --> 00:00:46,620 Poukisa nou pran swen nan Lendi? 16 00:00:46,620 --> 00:00:49,820 Poukisa, nan teyori, t 'nou pran swen nan Lendi? 17 00:00:49,820 --> 00:00:50,630 Ki sa sa fè? 18 00:00:50,630 --> 00:00:51,950 >> ODYANS: Nou ka dynamique rdimansyonman li. 19 00:00:51,950 --> 00:00:53,740 >> Oratè 1: OK, se konsa nou kapab dynamique rdimansyonman li. 20 00:00:53,740 --> 00:00:54,710 Oke fè tou de nan nou. 21 00:00:54,710 --> 00:00:57,560 Se konsa, ou ka dynamique rdimansyonman sa a estrikti done, Lè nou konsidere ke yon etalaj, 22 00:00:57,560 --> 00:01:00,760 sonje, ou gen konnen yon priori konbyen lajan espas ou vle 23 00:01:00,760 --> 00:01:03,870 epi si ou bezwen yon ti kras plis espas, w ap kalite soti nan chans. 24 00:01:03,870 --> 00:01:05,560 Ou gen yo kreye yon antye nouvo etalaj. 25 00:01:05,560 --> 00:01:07,893 Ou gen pou avanse pou pi tout nan ou done ki sòti nan youn nan lòt la, 26 00:01:07,893 --> 00:01:10,600 evantyèlman libere etalaj la fin vye granmoun si ou kapab, ak Lè sa a kontinye. 27 00:01:10,600 --> 00:01:13,891 Ki jis santi l trè koute chè ak trè rezèvwa, ak tout bon li kapab. 28 00:01:13,891 --> 00:01:14,890 Men, sa a se pa tout bon. 29 00:01:14,890 --> 00:01:18,180 Nou peye yon pri, kisa ki te yon nan pri yo plis evidan nou 30 00:01:18,180 --> 00:01:20,550 peye lè l sèvi avèk yon lis lye? 31 00:01:20,550 --> 00:01:22,825 >> ODYANS: Nou gen yo sèvi ak espas doub pou chak kesyon. 32 00:01:22,825 --> 00:01:25,200 Oratè 1: Yeah, se konsa nou bezwen omwen de fwa lavalè espas. 33 00:01:25,200 --> 00:01:27,700 An reyalite, mwen reyalize nan foto sa a menm yon ti kras bay manti, 34 00:01:27,700 --> 00:01:32,200 paske sou CS50 IDE nan yon anpil nan modèn òdinatè, yon konsèy oswa yon adrès 35 00:01:32,200 --> 00:01:33,700 se pa nan reyalite kat bytes. 36 00:01:33,700 --> 00:01:36,090 Li trè souvan sa yo jou uit bytes, ki 37 00:01:36,090 --> 00:01:38,530 vle di anba a pi rektang gen nan reyalite 38 00:01:38,530 --> 00:01:40,900 yo se kalite de fwa tankou gwo kòm sa m 'te trase, 39 00:01:40,900 --> 00:01:44,409 ki vle di w ap itilize twa fwa kòm anpil espas jan nou ta ka gen otreman. 40 00:01:44,409 --> 00:01:46,700 Koulye a, an menm tan an, nou ap toujou pale bytes, dwa? 41 00:01:46,700 --> 00:01:49,140 Nou ap pa nesesèman pale megabit oswa jigokte, 42 00:01:49,140 --> 00:01:51,000 sof si done sa yo estrikti jwenn gwo. 43 00:01:51,000 --> 00:01:54,510 >> Se konsa, jodi a nou kòmanse yo konsidere ki jan nou ta ka eksplore done 44 00:01:54,510 --> 00:01:57,310 pi plis efikasite si nan reyalite done a vin pi gran. 45 00:01:57,310 --> 00:02:00,360 Men, kite a eseye canonicalize operasyon yo an premye 46 00:02:00,360 --> 00:02:02,460 ke ou ka fè sou sa yo kalite estrikti done. 47 00:02:02,460 --> 00:02:04,790 Se konsa, yon bagay tankou yon lye lis jeneralman sipòte 48 00:02:04,790 --> 00:02:07,514 operasyon renmen efase, Insert, ak rechèch. 49 00:02:07,514 --> 00:02:08,639 Ak sa ki mwen vle di pa sa? 50 00:02:08,639 --> 00:02:11,222 Sa jis vle di ke anjeneral, si moun ap itilize lis lye, 51 00:02:11,222 --> 00:02:14,287 yo oswa yon lòt moun te aplike fonksyon tankou Delete, insert, 52 00:02:14,287 --> 00:02:16,120 ak rechèch, kidonk, ou ka aktyèlman fè yon bagay 53 00:02:16,120 --> 00:02:18,030 itil ak estrikti nan done. 54 00:02:18,030 --> 00:02:20,760 Se konsa, kite a pran yon gade rapid nan ki jan nou ta ka aplike 55 00:02:20,760 --> 00:02:24,530 kèk kòd pou yon lis lye jan sa a. 56 00:02:24,530 --> 00:02:27,885 >> , Se konsa, sa a se jis kèk kòd C pa menm yon pwogram konplè 57 00:02:27,885 --> 00:02:29,260 ke mwen vrèman byen vit vide yo. 58 00:02:29,260 --> 00:02:32,300 Li pa sou entènèt nan distribisyon an Kòd, paske li pa pral aktyèlman kouri. 59 00:02:32,300 --> 00:02:33,790 Men, remake mwen te jis ak yon kòmantè te di, 60 00:02:33,790 --> 00:02:36,130 dot dot dot, gen nan yon bagay la, dot dot dot, yon bagay la. 61 00:02:36,130 --> 00:02:38,410 Li kite yo jis gade nan sa pati pyès sa yo juicy ye. 62 00:02:38,410 --> 00:02:40,790 Se konsa, sou liy twa, sonje ke sa a se kounye a 63 00:02:40,790 --> 00:02:45,960 nou pwopoze deklare yon ne dènye tan, youn nan moun ki objè rektangilè. 64 00:02:45,960 --> 00:02:48,790 Li te gen yon int ke nou pral rele N, men nou te kapab rele l 'anyen, 65 00:02:48,790 --> 00:02:51,920 ak Lè sa a yon etwal struct ne rele kap vini an. 66 00:02:51,920 --> 00:02:55,520 Epi jis yo dwe klè, ki dezyèm liy, sou liy sis, ki sa ki sa? 67 00:02:55,520 --> 00:02:57,930 Ki sa ki li fè pou nou? 68 00:02:57,930 --> 00:03:01,044 Paske li sètènman sanble plis skre pase varyab abityèl nou an. 69 00:03:01,044 --> 00:03:02,740 >> ODYANS: Li fè li deplase sou yon sèl. 70 00:03:02,740 --> 00:03:04,650 >> Oratè 1: Li fè li deplase sou yon sèl. 71 00:03:04,650 --> 00:03:08,580 Apre sa, yo dwe plis presi, li pral magazen adrès la 72 00:03:08,580 --> 00:03:11,582 a ne la ki nan vle di yo dwe Semantics akote l, dwa? 73 00:03:11,582 --> 00:03:13,540 Se konsa, li pa k ap pase yo nesesèman deplase anyen. 74 00:03:13,540 --> 00:03:15,290 Li nan jis ale nan magazen se yon valè, ki se 75 00:03:15,290 --> 00:03:17,170 pral fè adrès la nan kèk lòt ne, 76 00:03:17,170 --> 00:03:20,810 ak Se poutèt sa nou te di struct etwal ne, zetwal la indican 77 00:03:20,810 --> 00:03:22,370 yon konsèy oswa yon adrès. 78 00:03:22,370 --> 00:03:26,390 OK, se konsa kounye a si ou asime ke nou gen N sa a disponib nan nou, e kite yo 79 00:03:26,390 --> 00:03:29,490 asime ke yon lòt moun gen eleman yon pakèt antye nan nonm antye relatif 80 00:03:29,490 --> 00:03:30,400 nan yon lis lye. 81 00:03:30,400 --> 00:03:35,640 Epi sa lis lye se pwente nan pa kèk pwen 82 00:03:35,640 --> 00:03:39,040 yon varyab rele lis sa a, se te pase nan isit la kòm yon paramèt, 83 00:03:39,040 --> 00:03:43,120 ki jan mwen ale sou liy 14 mete ann aplikasyon rechèch? 84 00:03:43,120 --> 00:03:45,990 Nan lòt mo, si mwen mete ann aplikasyon fonksyon ki gen objektif nan lavi 85 00:03:45,990 --> 00:03:48,889 se pran yon int ak Lè sa a nan kòmanse nan yon lis lye, 86 00:03:48,889 --> 00:03:50,430 ki se yon konsèy nan lis la lye. 87 00:03:50,430 --> 00:03:52,992 Fè tankou premye, ki moun ki mwen panse ke David te volontè nou an nan Lendi, 88 00:03:52,992 --> 00:03:54,700 li te montre nan antye lye lis la, 89 00:03:54,700 --> 00:03:57,820 li a tankou si nou ap pase David nan kòm agiman nou an isit la. 90 00:03:57,820 --> 00:03:59,990 Ki jan nou ale sou Travelers lis sa a? 91 00:03:59,990 --> 00:04:04,640 Oke, li sanble ke menm si endikasyon yo se relativman nouvo kounye a ak nou, 92 00:04:04,640 --> 00:04:07,010 nou ka fè sa relativman kareman. 93 00:04:07,010 --> 00:04:09,500 >> Mwen pral ale pi devan epi deklare yon varyab tanporè ki 94 00:04:09,500 --> 00:04:12,364 pa konvansyon se jis ale yo dwe rele konsèy, oswa ptr, 95 00:04:12,364 --> 00:04:14,030 men ou ta ka rele li anyen ou vle. 96 00:04:14,030 --> 00:04:16,470 Apre sa, mwen pral inisyalize li nan kòmansman an nan lis la. 97 00:04:16,470 --> 00:04:20,050 Se konsa, ou ka kalite panse a sa a kòm mwen pwofesè a lòt jou a, 98 00:04:20,050 --> 00:04:23,580 kalite montre nan yon moun nan mitan moun nou an kòm volontè yo. 99 00:04:23,580 --> 00:04:26,470 Se konsa, mwen se yon varyab tanporè sa a, se jis montre nan menm bagay la 100 00:04:26,470 --> 00:04:31,390 ki nou an azar yo te rele volontè David te tou montre yo. 101 00:04:31,390 --> 00:04:35,440 Koulye a, pandan y ap konsèy se pa nil, paske sonje 102 00:04:35,440 --> 00:04:40,350 ki nil se kèk valè Sentinel espesyal demarcates nan nan fen lis la, 103 00:04:40,350 --> 00:04:44,280 Se konsa, pandan mwen pa montre nan la tè tankou volontè dènye nou an 104 00:04:44,280 --> 00:04:47,190 te, se pou yo ale pi devan ak fè sa ki annapre yo. 105 00:04:47,190 --> 00:04:51,820 Si pointer-- e kounye a, mwen kalite vle fè sa nou te fè ak elèv la 106 00:04:51,820 --> 00:04:57,410 structure-- si konsèy dot pwochen equals-- olye, si konsèy dot N egal 107 00:04:57,410 --> 00:05:02,290 egal a varyab la N, agiman sa a te pase a, 108 00:05:02,290 --> 00:05:05,370 Lè sa a, mwen vle ale pi devan epi di retounen vre. 109 00:05:05,370 --> 00:05:11,020 Mwen jwenn nimewo N andedan nan youn nan nœuds yo nan lis lye m 'yo. 110 00:05:11,020 --> 00:05:13,500 Men, dot la pa ap travay nan kontèks sa a, 111 00:05:13,500 --> 00:05:17,260 paske konsèy, ptr, se tout bon yon konsèy, yon adrès, 112 00:05:17,260 --> 00:05:20,632 nou aktyèlman kapab bèl itilize finalman yon moso nan sentaks 113 00:05:20,632 --> 00:05:22,590 ki kalite fait sans entwisyon ak aktyèlman 114 00:05:22,590 --> 00:05:27,870 sèvi ak yon flèch isit la, ki vle di ale nan ki adrès nonb antye relatif la gen nan. 115 00:05:27,870 --> 00:05:30,160 Se konsa, li trè menm jan an nan Lespri Bondye a operatè a dot, 116 00:05:30,160 --> 00:05:33,860 men paske konsèy se pa yon konsèy epi yo pa yon struct aktyèl tèt li, 117 00:05:33,860 --> 00:05:35,380 nou jis sèvi ak flèch la. 118 00:05:35,380 --> 00:05:40,620 >> Se konsa, si ne aktyèl la se mwen menm, nan varyab tanporè, kap montre nan 119 00:05:40,620 --> 00:05:43,060 se pa N, ki sa mwen vle fè? 120 00:05:43,060 --> 00:05:45,910 Oke, ak volontè imen mwen ke nou te isit la lòt jou a, 121 00:05:45,910 --> 00:05:49,710 si premye moun mwen an se pa yon sèl I vle, e petèt dezyèm moun nan se pa 122 00:05:49,710 --> 00:05:52,660 yon sèl la mwen vle, ak twazyèm lan, mwen bezwen kenbe fizikman deplase. 123 00:05:52,660 --> 00:05:54,690 Fè tankou ki jan mwen etap nan yon lis? 124 00:05:54,690 --> 00:05:57,470 Lè nou te gen yon etalaj, ou jis te fè tankou mwen plis plis. 125 00:05:57,470 --> 00:06:03,660 Men, nan ka sa a, li sifizan fè konsèy, vin, konsèy, kap vini an. 126 00:06:03,660 --> 00:06:07,580 Nan lòt mo, jaden nan pwochen te se menm jan ak tout men yo kite a 127 00:06:07,580 --> 00:06:10,880 ki volontè imen nou an nan Lendi te lè l sèvi avèk A ak pwen nan kèk lòt ne. 128 00:06:10,880 --> 00:06:12,890 Moun sa yo ki te vwazen pwochen yo. 129 00:06:12,890 --> 00:06:17,060 >> Se konsa, si mwen vle etap nan lis sa a, Mwen pa ka jis fè mwen plis plis ankò, 130 00:06:17,060 --> 00:06:20,120 Mwen olye pou te vle di Se mwen menm, konsèy, ki pral 131 00:06:20,120 --> 00:06:24,650 egal tou sa jaden an pwochen se, jaden an pwochen se, jaden an pwochen se, 132 00:06:24,650 --> 00:06:28,350 apre tout moun ki men kite ke nou te lonje dwèt sou sèn 133 00:06:28,350 --> 00:06:30,000 nan kèk valè ki vin apre. 134 00:06:30,000 --> 00:06:32,590 Men, si mwen jwenn nan ki iterasyon antye, 135 00:06:32,590 --> 00:06:39,330 epi finalman, mwen frape nil pa gen jwenn N ankò, mwen jis retounen fo. 136 00:06:39,330 --> 00:06:44,100 Se konsa, ankò, tout sa ki n ap fè isit la, tankou pou chak foto nan yon ti moman de sa, 137 00:06:44,100 --> 00:06:47,840 se kòmanse nan idantifye nan la kòmanse nan lis la prezimableman. 138 00:06:47,840 --> 00:06:50,970 Lè sa a, mwen tcheke, se valè a M 'ap chache egal a nèf? 139 00:06:50,970 --> 00:06:52,650 Si se konsa, mwen retounen vre ak mwen se fè. 140 00:06:52,650 --> 00:06:56,450 Si ou pa, mwen mete ajou men m ', AKA konsèy, A ak pwen 141 00:06:56,450 --> 00:06:59,540 nan kote flèch nan pwochen te a, epi Lè sa a, kote flèch la pwochen nan, 142 00:06:59,540 --> 00:07:00,480 ak pwochen an. 143 00:07:00,480 --> 00:07:03,770 Mwen tou senpleman mache nan sa a etalaj. 144 00:07:03,770 --> 00:07:06,010 >> Se konsa, ankò, ki moun ki gen sousi? 145 00:07:06,010 --> 00:07:07,861 Fè tankou ki sa ki sa a yon engredyan pou? 146 00:07:07,861 --> 00:07:10,360 Oke, sonje ke nou prezante nosyon de yon pil, ki 147 00:07:10,360 --> 00:07:15,400 se yon done abstrè tape tèl degre ke li nan pa yon bagay C, li nan pa yon bagay CS50, 148 00:07:15,400 --> 00:07:19,430 li nan yon lide abstrè, lide sa a nan anpile bagay sa yo sou tèt youn ak lòt 149 00:07:19,430 --> 00:07:21,820 ki ka aplike nan grap rezen diferan fason. 150 00:07:21,820 --> 00:07:25,600 Apre sa, yon fason nou pwopoze te la avèk yon etalaj, oswa avèk yon lis lye. 151 00:07:25,600 --> 00:07:29,570 Apre sa, li vire soti ke kanonikman, se yon chemine sipòte omwen de operasyon yo. 152 00:07:29,570 --> 00:07:32,320 Apre sa, mo sa yo Buzz yo pouse, yo pouse yon bagay sou chemine a, 153 00:07:32,320 --> 00:07:34,770 tankou yon nouvo plato nan la sal manje, oswa pòp, 154 00:07:34,770 --> 00:07:39,000 ki vle di yo retire topmost nan plato soti nan chemine a nan manje a 155 00:07:39,000 --> 00:07:41,500 sal, ak Lè sa a petèt kèk operasyon lòt kòm byen. 156 00:07:41,500 --> 00:07:45,770 Se konsa, kouman ta ka nou defini estrikti a ke nou ap kounye a rele yon pil? 157 00:07:45,770 --> 00:07:50,020 >> Bon, nou gen tout voulu la sentaks a jete nou yo nan C. M 'ap di, 158 00:07:50,020 --> 00:07:53,830 ban m 'yon definisyon di ki kalite yon struct andedan nan yon pil, 159 00:07:53,830 --> 00:07:58,030 Mwen pral di se yon etalaj, nan yon pakèt antye nan nimewo ak Lè sa a gwosè. 160 00:07:58,030 --> 00:08:00,930 Se konsa, nan lòt mo, si mwen vle aplike sa a nan kòd, 161 00:08:00,930 --> 00:08:03,830 kite m 'ale ak jis kalite trase ki sa sa a ap di. 162 00:08:03,830 --> 00:08:06,317 Se konsa, sa ap di, ban m 'yon estrikti ki nan te resevwa yon etalaj, 163 00:08:06,317 --> 00:08:09,400 epi mwen pa konnen ki sa kapasite se, li nan aparamman kèk konstan ke mwen te 164 00:08:09,400 --> 00:08:10,858 defini yon lòt kote, e ke sa a amann. 165 00:08:10,858 --> 00:08:15,260 Men, si li nan jis yon sèl, de, twa, kat, senk. 166 00:08:15,260 --> 00:08:16,700 Se konsa, kapasite se 5. 167 00:08:16,700 --> 00:08:21,730 Sa a eleman andedan nan m ' pral estrikti dwe rele nimewo. 168 00:08:21,730 --> 00:08:24,020 Lè sa a, mwen bezwen youn lòt varyab aparamman 169 00:08:24,020 --> 00:08:27,814 rele gwosè ke okòmansman mwen pral ladann se inisyalizèd a zewo. 170 00:08:27,814 --> 00:08:29,730 Si gen nan pa gen anyen nan chemine, gwosè a se zewo, 171 00:08:29,730 --> 00:08:31,420 ak li nan valè fatra nan chif yo. 172 00:08:31,420 --> 00:08:33,450 Mwen pa gen okenn lide sa ki nan nan gen jis ankò. 173 00:08:33,450 --> 00:08:36,059 >> Se konsa, si mwen vle pouse yon bagay sou chemine a, 174 00:08:36,059 --> 00:08:40,780 ta kwè mwen rele pouse nan fonksyon, ak M 'ap di pouse 50, tankou nimewo a 50, 175 00:08:40,780 --> 00:08:44,090 kote ta ou pwopoze Mwen trase l 'nan sa a etalaj? 176 00:08:44,090 --> 00:08:47,124 Genyen senk diferan repons posib. 177 00:08:47,124 --> 00:08:48,790 Ki kote ou vle pouse nimewo a 50? 178 00:08:48,790 --> 00:08:51,899 Si objektif la isit la, ankò, rele nan pouse fonksyon, pase nan yon agiman 179 00:08:51,899 --> 00:08:52,940 nan 50, kote mwen mete l '? 180 00:08:52,940 --> 00:08:55,680 181 00:08:55,680 --> 00:08:59,052 Senk sa ki posib 20% chans a devine kòrèkteman. 182 00:08:59,052 --> 00:08:59,896 Wi? 183 00:08:59,896 --> 00:09:00,740 >> ODYANS: Byen lwen dwat. 184 00:09:00,740 --> 00:09:01,990 >> Oratè 1: Byen lwen dwat. 185 00:09:01,990 --> 00:09:08,359 Gen kounye a yon chans 25% a devine kòrèkteman. 186 00:09:08,359 --> 00:09:09,650 Se konsa, ki ta aktyèlman ap amann. 187 00:09:09,650 --> 00:09:12,770 Pa konvansyon, mwen pral di ak yon etalaj, nou ta jeneralman kòmanse nan bò gòch la, 188 00:09:12,770 --> 00:09:14,519 men nou te kapab sètènman kòmanse nan bò dwat la. 189 00:09:14,519 --> 00:09:17,478 Se konsa, beke a isit la ta dwe mwen se pwobableman pral fè desen l 'sou bò gòch la, 190 00:09:17,478 --> 00:09:20,060 jis tankou nan yon etalaj nòmal kote Mwen kòmanse ale gòch a dwat. 191 00:09:20,060 --> 00:09:21,780 Men, si ou ka baskile aritmetik a, amann. 192 00:09:21,780 --> 00:09:23,060 Li nan jis pa konvansyonèl yo. 193 00:09:23,060 --> 00:09:24,880 OK, mwen bezwen fè yon sèl plis chanjman menm si. 194 00:09:24,880 --> 00:09:27,710 Kounye a ke mwen te pouse yon bagay sou chemine a, sa ki nan pwochen? 195 00:09:27,710 --> 00:09:29,400 >> Tout dwa, mwen gen yo kantite gwosè a. 196 00:09:29,400 --> 00:09:32,600 Se pou m 'ale pi devan ak jis aktyalizasyon sa a, ki te zewo. 197 00:09:32,600 --> 00:09:35,950 Ak olye pou kounye a, mwen pral yo mete nan valè a yon sèl. 198 00:09:35,950 --> 00:09:39,460 Epi, koulye a ta kwè mwen pouse yon lòt Nimewo sou chemine a, tankou 51. 199 00:09:39,460 --> 00:09:42,680 Bon, mwen gen fè yon sèl plis chanjman, ki se jiska gwosè a de. 200 00:09:42,680 --> 00:09:46,100 Lè sa a, ta kwè mwen pouse yon sèl plis Nimewo sou chemine a tankou 61, 201 00:09:46,100 --> 00:09:52,530 koulye a, mwen bezwen mete ajou gwosè a yon sèl plis tan, epi pou yo jwenn valè a 3 kòm gwosè a. 202 00:09:52,530 --> 00:09:54,690 Epi, koulye a ta kwè mwen rele pòp. 203 00:09:54,690 --> 00:09:57,250 Koulye a, pòp, pa konvansyon, pa pran yon agiman. 204 00:09:57,250 --> 00:10:00,430 Avèk yon pil, tout la pwen nan metafò nan plato 205 00:10:00,430 --> 00:10:03,450 se ke ou pa gen diskresyon yo ale jwenn ki plato, tout sa ou kapab fè 206 00:10:03,450 --> 00:10:06,330 se pòp yon sèl nan topmost nan chemine a, jis paske. 207 00:10:06,330 --> 00:10:08,010 Sa a ki sa sa a estrikti done fè. 208 00:10:08,010 --> 00:10:12,250 >> Se konsa, pa ke lojik si mwen di pòp, sa ki vini an? 209 00:10:12,250 --> 00:10:13,080 Se konsa, 61. 210 00:10:13,080 --> 00:10:15,402 Se konsa, sa vrèman se òdinatè a pral fè nan memwa? 211 00:10:15,402 --> 00:10:16,610 Ki sa ki kòd m 'dwe fè? 212 00:10:16,610 --> 00:10:20,330 Ki sa ou ta pwopoze nou chanje sou ekran an? 213 00:10:20,330 --> 00:10:23,410 Ki sa ki ta chanje? 214 00:10:23,410 --> 00:10:24,960 Padon? 215 00:10:24,960 --> 00:10:26,334 Se konsa, nou debarase m de 61. 216 00:10:26,334 --> 00:10:27,500 Se konsa, mwen kapab definitivman fè sa. 217 00:10:27,500 --> 00:10:28,640 Apre sa, mwen ka debarase m de 61. 218 00:10:28,640 --> 00:10:30,980 Lè sa a, sa lòt chanjman bezwen yo rive? 219 00:10:30,980 --> 00:10:33,160 Kantite moun ki pwobableman gen pou tounen nan de. 220 00:10:33,160 --> 00:10:34,210 Se konsa, sa a, se amann. 221 00:10:34,210 --> 00:10:36,690 Men, rete tann yon, gwosè minit yon ti moman de sa te twa. 222 00:10:36,690 --> 00:10:38,240 Se pou nou jis fè yon chèk saniti rapid. 223 00:10:38,240 --> 00:10:41,810 Ki jan nou t 'konnen ke nou te vle debarase m de 61? 224 00:10:41,810 --> 00:10:42,760 Paske nou ap eklate. 225 00:10:42,760 --> 00:10:46,450 Se konsa, mwen gen sa a gwosè dezyèm pwopriyete. 226 00:10:46,450 --> 00:10:48,470 >> Tann yon minit, mwen se panse tounen nan semèn de 227 00:10:48,470 --> 00:10:51,660 lè nou te kòmanse pale sou ranje, kote sa a te kote zewo, 228 00:10:51,660 --> 00:10:55,920 sa a te kote yon sèl, sa a te kote de, sa a se kote twa, kat, 229 00:10:55,920 --> 00:10:58,460 li sanble nan relasyon ant gwosè 230 00:10:58,460 --> 00:11:02,780 ak eleman a ke mwen vle retire soti nan etalaj la parèt yo jis pou ki sa? 231 00:11:02,780 --> 00:11:05,120 Kantite moun ki mwens yon sèl. 232 00:11:05,120 --> 00:11:07,786 Se konsa, sa a, se ki jan moun kòm nou konnen 61 vini anvan. 233 00:11:07,786 --> 00:11:09,160 Ki jan nan òdinatè a ale nan konnen? 234 00:11:09,160 --> 00:11:11,701 Lè kòd ou a, kote ou pwobableman vle fè yon gwosè mwens, 235 00:11:11,701 --> 00:11:14,950 se konsa twa mwens se yon sèl de, e ke vle di nou vle debarase m de 61. 236 00:11:14,950 --> 00:11:18,000 Lè sa a, nou ka tout bon aktyalizasyon gwosè a pou ke gwosè kounye a 237 00:11:18,000 --> 00:11:20,300 ale soti nan twa a jis de. 238 00:11:20,300 --> 00:11:24,520 Apre sa, jis yo dwe pedant, mwen pral pwopoze ke mwen fè, dwa? 239 00:11:24,520 --> 00:11:27,660 Ou pwopoze entwitif kòrèkteman mwen ta dwe debarase m de 61. 240 00:11:27,660 --> 00:11:30,700 Men, gen pa mwen kalite sòt de vinn m de 61? 241 00:11:30,700 --> 00:11:33,790 Mwen te efektivman bliye ke li la aktyèlman la. 242 00:11:33,790 --> 00:11:37,680 Epi reflechi tounen nan pset4, si ou te li atik la sou forensics, PDF nan 243 00:11:37,680 --> 00:11:40,780 ke nou te ou nèg li, oswa ou pral li semèn sa a pou pset4. 244 00:11:40,780 --> 00:11:44,300 Sonje byen, sa a se aktyèlman konvnabl nan lide an antye nan forensics òdinatè. 245 00:11:44,300 --> 00:11:47,820 Ki sa ki yon òdinatè jeneralman fè se li jis bliye kote yon bagay se, 246 00:11:47,820 --> 00:11:51,300 men li pa ale nan ak renmen eseye grate li pase sou desizyon soti oswa 247 00:11:51,300 --> 00:11:54,560 moun Bits ak zewo ak moun yo oswa kèk lòt modèl o aza 248 00:11:54,560 --> 00:11:56,690 sof si ou tèt ou fè sa fè espre. 249 00:11:56,690 --> 00:11:58,930 Se konsa, entwisyon ou te dwat, se pou yo debarase m de 61. 250 00:11:58,930 --> 00:12:00,650 Men, an reyalite, nou pa bezwen deranje. 251 00:12:00,650 --> 00:12:04,040 Nou jis bezwen bliye ke li a gen pa chanje gwosè nou an. 252 00:12:04,040 --> 00:12:05,662 >> Koulye a, gen nan yon pwoblèm ak chemine sa a. 253 00:12:05,662 --> 00:12:07,620 Si m 'kenbe pouse bagay sou chemine a, sa ki nan 254 00:12:07,620 --> 00:12:11,167 evidamman pral rive nan jis yon kèk moman tan? 255 00:12:11,167 --> 00:12:12,500 Nou pral kouri soti nan espas. 256 00:12:12,500 --> 00:12:13,580 Ak sa ki nou fè? 257 00:12:13,580 --> 00:12:14,680 Nou ap kalite vise. 258 00:12:14,680 --> 00:12:19,000 Aplikasyon sa a pa kite nou rdimansyonman etalaj la, paske lè l sèvi avèk 259 00:12:19,000 --> 00:12:21,240 sentaks sa a, si ou panse tounen nan semèn de, 260 00:12:21,240 --> 00:12:23,520 yon fwa ou te deklare gwosè a nan yon etalaj, 261 00:12:23,520 --> 00:12:26,780 nou pa te wè yon mekanis ankò kote ou kapab chanje gwosè a nan etalaj la. 262 00:12:26,780 --> 00:12:29,020 Ak tout bon C pa gen ki karakteristik. 263 00:12:29,020 --> 00:12:32,524 Si w di m 'senk ba Nths, rele yo nimewo, 264 00:12:32,524 --> 00:12:33,940 sa a, se tout sa ou ap ale nan jwenn li. 265 00:12:33,940 --> 00:12:38,790 Se konsa, nou fè kounye a kòm nan Lendi, gen kapasite nan eksprime sa yo panse yon solisyon 266 00:12:38,790 --> 00:12:42,480 menm si, nou jis bezwen ajiste definisyon an nan chemine nou an 267 00:12:42,480 --> 00:12:46,840 pa yo dwe kèk etalaj difisil-kode, men jis nan magazen yon adrès. 268 00:12:46,840 --> 00:12:47,890 >> Koulye a, poukisa se sa a? 269 00:12:47,890 --> 00:12:51,690 Koulye a, nou jis gen yo dwe konfòtab ak lefèt ke lè pwogram mwen kouri, 270 00:12:51,690 --> 00:12:53,730 M 'ap prezimableman pral gen mande moun nan, 271 00:12:53,730 --> 00:12:55,110 konbyen nimewo ou vle nan magazen? 272 00:12:55,110 --> 00:12:56,776 Se konsa, D 'a te soti nan yon kote. 273 00:12:56,776 --> 00:12:59,140 Men, yon fwa mwen konnen ke nimewo, lè sa a mwen ka jis 274 00:12:59,140 --> 00:13:02,470 itilize sa fonksyone bay m 'yon ti moso nan memwa? 275 00:13:02,470 --> 00:13:03,580 Mwen ka itilize malok. 276 00:13:03,580 --> 00:13:06,710 Apre sa, mwen ka di nenpòt ki kantite bytes Mwen vle tounen pou Nths sa yo. 277 00:13:06,710 --> 00:13:10,910 Apre sa, tout mwen gen nan magazen an nimewo yo varyab isit la andedan nan struct sa a 278 00:13:10,910 --> 00:13:13,480 yo ta dwe ki sa? 279 00:13:13,480 --> 00:13:18,440 Ki sa ki aktyèlman ale nan la nimewo nan senaryo sa a? 280 00:13:18,440 --> 00:13:21,300 Yeah, yon konsèy ak pi gran an multiple nan ki ti moso nan memwa, 281 00:13:21,300 --> 00:13:24,940 oswa plis espesyalman, adrès la nan premye a nan tout sa yo bytes. 282 00:13:24,940 --> 00:13:27,300 Pa gen pwoblèm si li nan youn multiple oswa yon milya dola bytes, 283 00:13:27,300 --> 00:13:28,890 Mwen jis bezwen pran swen sou premye a. 284 00:13:28,890 --> 00:13:31,530 Paske sa garanti malok ak garanti sistèm opere m 'yo, 285 00:13:31,530 --> 00:13:34,170 se ke moso nan memwa mwen jwenn, li pral yo dwe vwazen. 286 00:13:34,170 --> 00:13:35,378 Gen pa k ap pase yo dwe twou vid ki genyen. 287 00:13:35,378 --> 00:13:38,576 Se konsa, si mwen te mande pou 50 bytes oswa 1,000 bytes, 288 00:13:38,576 --> 00:13:40,450 yo ap tout pral fè tounen nan tounen nan do. 289 00:13:40,450 --> 00:13:44,500 Se konsa, lontan ke mwen sonje ki jan gwo, ki jan lajan mwen te mande pou yo, tout mwen bezwen konnen 290 00:13:44,500 --> 00:13:46,230 se premye adrès la sa yo. 291 00:13:46,230 --> 00:13:48,660 >> Se konsa, kounye a nou gen kapasite la nan kòd. 292 00:13:48,660 --> 00:13:51,280 Kwake, li k ap pase yo pran nou plis tan yo ekri sa a leve, 293 00:13:51,280 --> 00:13:55,900 nou te ka kounye a aloue ke memwa pa jis estoke yon adrès diferan gen 294 00:13:55,900 --> 00:13:59,060 si nou vle yon pi gwo oswa menm yon moso ki pi piti nan memwa. 295 00:13:59,060 --> 00:14:00,170 Se konsa, isit la nan yon komès. 296 00:14:00,170 --> 00:14:01,360 Koulye a, nou jwenn dynamism. 297 00:14:01,360 --> 00:14:03,350 Nou toujou gen contiguousness mwen reklame. 298 00:14:03,350 --> 00:14:05,881 Paske malok pral ban nou yon moso vwazen nan memwa. 299 00:14:05,881 --> 00:14:08,630 Men, sa a se pral fè yon doulè nan kou a pou nou, pwogramè a, 300 00:14:08,630 --> 00:14:09,770 ki aktyèlman kode yo. 301 00:14:09,770 --> 00:14:10,730 Se jis plis travay. 302 00:14:10,730 --> 00:14:13,930 Nou bezwen Kòd analogue nan sa m 'te frape soti jis yon ti moman de sa. 303 00:14:13,930 --> 00:14:16,120 Trè pratik, men li ajoute konpleksite. 304 00:14:16,120 --> 00:14:19,520 Se konsa, tan pwomotè, pwogramè tan se yon lòt resous ankò 305 00:14:19,520 --> 00:14:22,520 ke nou ta ka bezwen yo ap depanse kèk tan yo ka resevwa karakteristik nouvo. 306 00:14:22,520 --> 00:14:24,020 Lè sa a, nan kou gen yon keu. 307 00:14:24,020 --> 00:14:26,227 Nou pa pral antre nan sa a youn nan anpil detay. 308 00:14:26,227 --> 00:14:27,560 Men, li la trè menm jan an nan Lespri Bondye. 309 00:14:27,560 --> 00:14:31,220 Mwen te kapab aplike yon keu, ak operasyon korespondan li yo, 310 00:14:31,220 --> 00:14:35,660 enqueue oswa dequeue, tankou ajoute oswa retire, li nan jis yon fason amateur nan di li, 311 00:14:35,660 --> 00:14:38,100 enqueue oswa dequeue, jan sa a. 312 00:14:38,100 --> 00:14:41,170 Mwen ka jis bay tèt mwen yon struct sa ankò gen etalaj yon PO lan, 313 00:14:41,170 --> 00:14:44,000 sa ankò te gen yon gwosè, men poukisa pou m kounye a bezwen 314 00:14:44,000 --> 00:14:46,940 nan kenbe tras nan devan an nan yon keu? 315 00:14:46,940 --> 00:14:50,630 Mwen pa t 'bezwen konnen devan nan chemine m 'yo. 316 00:14:50,630 --> 00:14:53,570 Oke, si mwen ankò pou yon queue-- kite yo jis difisil 317 00:14:53,570 --> 00:14:57,870 kode li tankou ke li gen tankou senk nonm antye relatif nan isit la ki kapab. 318 00:14:57,870 --> 00:15:00,940 Se konsa, sa a se zewo, yonn, de, twa, kat. 319 00:15:00,940 --> 00:15:03,430 Sa a se pral yo dwe rele nimewo ankò. 320 00:15:03,430 --> 00:15:06,940 Lè sa a y'a rele gwosè. 321 00:15:06,940 --> 00:15:10,056 >> Poukisa li pa ase gen gwosè jis? 322 00:15:10,056 --> 00:15:11,680 Oke, kite la pouse moun ki nimewo menm sou. 323 00:15:11,680 --> 00:15:14,220 Se konsa, mwen pushed-- mwen enqueued, oswa pouse. 324 00:15:14,220 --> 00:15:20,150 Koulye a, mwen pral enqueue 50, ak Lè sa a 51, ak Lè sa a 61, ak dot dot dot. 325 00:15:20,150 --> 00:15:21,070 Se konsa, sa a, se enqueue. 326 00:15:21,070 --> 00:15:23,176 Mwen enqueued 50, Lè sa a, 51, Lè sa a, 61. 327 00:15:23,176 --> 00:15:25,050 Epi sa sanble ki idantik nan yon chemine konsa byen lwen, 328 00:15:25,050 --> 00:15:27,190 eksepte mwen bezwen fè yon sèl chanjman. 329 00:15:27,190 --> 00:15:33,680 Mwen bezwen mete ajou sa a gwosè, se konsa mwen ale soti nan zewo rive youn nan de a twa kounye a. 330 00:15:33,680 --> 00:15:35,760 Kouman pou mwen dequeue? 331 00:15:35,760 --> 00:15:36,890 Ki sa ki k ap pase ak dequeue? 332 00:15:36,890 --> 00:15:41,950 Kimoun ki ta dwe vini nan lis sa a premye si li nan liy lan nan Apple magazen an? 333 00:15:41,950 --> 00:15:42,780 Se konsa, 50. 334 00:15:42,780 --> 00:15:44,700 Se konsa, li nan kalite Delice moman sa a. 335 00:15:44,700 --> 00:15:47,880 Lè nou konsidere ke dènye fwa li te super fasil yo jis fè yon gwosè mwens, 336 00:15:47,880 --> 00:15:51,440 Mwen jwenn nan fen a nan etalaj mwen efektivman kote nimewo yo ye a, li retire 61. 337 00:15:51,440 --> 00:15:52,920 Men, mwen pa vle retire 61. 338 00:15:52,920 --> 00:15:55,030 Mwen vle pran 50, ki moun ki te gen a 5:00 AM 339 00:15:55,030 --> 00:15:56,790 nan liy moute pou nan nouvo iPhone oswa etajèr. 340 00:15:56,790 --> 00:16:01,200 Se konsa, yo debarase m de 50, mwen pa ka jis fè sa, dwa? 341 00:16:01,200 --> 00:16:02,547 Mwen ka travèse soti 50. 342 00:16:02,547 --> 00:16:04,380 Men, nou jis di nou pa gen yo dwe tèlman nan dèyè 343 00:16:04,380 --> 00:16:06,330 tankou yo grate soti oswa ou kache done yo. 344 00:16:06,330 --> 00:16:08,090 Nou ka jis bliye kote li ye. 345 00:16:08,090 --> 00:16:12,330 >> Men, si mwen chanje gwosè m 'kounye a de, se enfòmasyon sa a ase 346 00:16:12,330 --> 00:16:15,711 konnen ki sa ki pwal sou nan keu mwen an? 347 00:16:15,711 --> 00:16:16,680 Pa vrèman. 348 00:16:16,680 --> 00:16:19,830 Fè tankou gwosè mwen an se de, men kote keu la kòmanse, 349 00:16:19,830 --> 00:16:22,980 espesyalman si mwen toujou gen moun ki nimewo menm nan memwa. 350 00:16:22,980 --> 00:16:24,260 50, 51, 61. 351 00:16:24,260 --> 00:16:27,090 Se konsa, mwen bezwen sonje kounye a kote devan an se. 352 00:16:27,090 --> 00:16:29,630 Se konsa, jan mwen pwopoze moute a, nou pral gen sèlman rele 353 00:16:29,630 --> 00:16:33,729 Nyèm devan, ki gen premye ta dwe valè yo te ki sa? 354 00:16:33,729 --> 00:16:35,270 Zewo, jis nan konmansman an nan lis la. 355 00:16:35,270 --> 00:16:40,876 Men koulye a, nan adisyon a decrementing gwosè a, nou jis kantite devan an. 356 00:16:40,876 --> 00:16:42,000 Koulye a, isit la nan yon lòt pwoblèm. 357 00:16:42,000 --> 00:16:43,030 Se konsa, yon fwa mwen kenbe prale. 358 00:16:43,030 --> 00:16:47,520 Sipoze sa a se nimewo a nan tankou 121, 124, ak lè sa a, dammit, 359 00:16:47,520 --> 00:16:48,610 Mwen se soti nan espas. 360 00:16:48,610 --> 00:16:50,390 Men, rete tann yon minit, mwen pa se. 361 00:16:50,390 --> 00:16:55,630 Se konsa, nan pwen sa a nan istwa a, ta kwè ke gwosè a se youn, de, 362 00:16:55,630 --> 00:17:00,370 twa, kat, se konsa ta kwè se nan gwosè se kat, devan la se youn, 363 00:17:00,370 --> 00:17:01,621 se konsa 51 se nan devan an. 364 00:17:01,621 --> 00:17:04,329 Mwen vle mete yon lòt nimewo isit la, men, dammit, mwen soti nan espas. 365 00:17:04,329 --> 00:17:06,710 Men, mwen pa reyèlman, dwa? 366 00:17:06,710 --> 00:17:11,192 Ki kote mwen te kapab mete kèk plis valè, tankou 171? 367 00:17:11,192 --> 00:17:13,400 Yeah, mwen te kapab jis kalite tounen lòt bò a, dwa? 368 00:17:13,400 --> 00:17:18,161 Lè sa a, travèse soti 50 an, oswa jis recouvrir li ak 171. 369 00:17:18,161 --> 00:17:20,410 Men, si w ap mande poukisa nimewo nou an te tèlman o aza, 370 00:17:20,410 --> 00:17:24,150 sa yo yo souvan pran òdinatè kou syans nan Harvard apre CS50. 371 00:17:24,150 --> 00:17:27,510 Men, sa ki te yon optimize bon, paske kounye a mwen pa gaspiye espas. 372 00:17:27,510 --> 00:17:30,750 Mwen toujou gen sonje ki jan gwo bagay sa a se total. 373 00:17:30,750 --> 00:17:31,500 Li nan senk total. 374 00:17:31,500 --> 00:17:33,375 Paske mwen pa vle kòmanse ranplasan 51. 375 00:17:33,375 --> 00:17:36,260 Se konsa, kounye Se mwen menm ki toujou soti nan espas, se konsa menm pwoblèm nan tankou anvan. 376 00:17:36,260 --> 00:17:39,140 Men, ou ka wè ki jan kounye a nan kòd ou a, ou pwobableman 377 00:17:39,140 --> 00:17:41,910 gen yo ekri yon ti kras plis konpleksite fè ki rive. 378 00:17:41,910 --> 00:17:44,510 Lè an reyalite, ki sa operatè nan C pwobableman pèmèt 379 00:17:44,510 --> 00:17:48,110 ou maji fè sa sirkularite la? 380 00:17:48,110 --> 00:17:50,160 Yeah operatè a modulo, siyen an pousan. 381 00:17:50,160 --> 00:17:53,160 Se konsa, sa ki nan kalite fre sou yon keu, menm si nou kenbe desen ranje 382 00:17:53,160 --> 00:17:56,520 tankou sa yo tankou liy dwat, si ou kalite panse osijè de sa a kòm kourb 383 00:17:56,520 --> 00:18:00,341 alantou kòm yon sèk, lè sa a jis entwitif li kalite travay mantalman 384 00:18:00,341 --> 00:18:01,590 Mwen panse ke yon ti kras plis propr. 385 00:18:01,590 --> 00:18:05,190 Ou ta toujou gen aplike ke modèl mantal nan kòd. 386 00:18:05,190 --> 00:18:07,550 Se konsa, pa ki difisil, finalman, aplike, 387 00:18:07,550 --> 00:18:12,430 men nou toujou pèdi size-- a olye a, kapasite yo rdimansyonman, sof si nou fè sa. 388 00:18:12,430 --> 00:18:15,310 >> Nou gen yo debarase m de etalaj la, nou ranplase li ak yon konsèy sèl, 389 00:18:15,310 --> 00:18:20,010 ak Lè sa a yon kote nan kòd m 'mwen te gen yon rele sa fonksyone nan aktyèlman kreye 390 00:18:20,010 --> 00:18:23,720 etalaj la rele nimewo? 391 00:18:23,720 --> 00:18:26,190 Malok, oswa kèk menm jan an fonksyon, egzakteman. 392 00:18:26,190 --> 00:18:30,481 Nenpòt kesyon sou pil oswa ke moun kap kriye. 393 00:18:30,481 --> 00:18:30,980 Yeah? 394 00:18:30,980 --> 00:18:33,657 395 00:18:33,657 --> 00:18:34,240 Bon kesyon. 396 00:18:34,240 --> 00:18:35,830 Ki sa ki modulo ou ta itilize isit la. 397 00:18:35,830 --> 00:18:38,520 Se konsa, jeneralman, lè w ap itilize mod, ou ta fè l ' 398 00:18:38,520 --> 00:18:40,620 ak gwosè a nan la done antye estrikti. 399 00:18:40,620 --> 00:18:44,120 Se konsa, yon bagay tankou senk oswa kapasite, si li a konstan, se pwobableman enplike nan sa. 400 00:18:44,120 --> 00:18:47,100 Men, jis fè modulo senk pwobableman se pa ase, 401 00:18:47,100 --> 00:18:51,380 paske nou bezwen konnen èske nou vlope toutotou isit la oswa isit la oswa isit la. 402 00:18:51,380 --> 00:18:54,160 Se konsa, ou ap pwobableman tou ale nan vle enplike 403 00:18:54,160 --> 00:18:57,220 gwosè a nan bagay la, oswa varyab la devan kòm byen. 404 00:18:57,220 --> 00:19:00,140 Se konsa, li jis sa a relativman ekspresyon aritmetik senp, 405 00:19:00,140 --> 00:19:02,000 men modulo ta dwe engredyan nan kle. 406 00:19:02,000 --> 00:19:03,330 >> Fim Se konsa, kout si ou pral. 407 00:19:03,330 --> 00:19:05,780 Yon animasyon ke kèk jan nan yon lòt inivèsite 408 00:19:05,780 --> 00:19:08,060 mete tèt yo ansanm ke nou te adapte pou diskisyon sa a. 409 00:19:08,060 --> 00:19:12,630 Sa enplike Jack aprann nan enfòmasyon sou ke moun kap kriye ak stats. 410 00:19:12,630 --> 00:19:19,010 411 00:19:19,010 --> 00:19:21,890 >> FIM: Yon fwa sou yon tan, te gen yon nèg yo te rele Jack. 412 00:19:21,890 --> 00:19:25,330 Lè li rive fè zanmi, Jack pa t 'gen yon talan. 413 00:19:25,330 --> 00:19:28,220 Se konsa, Jack te ale nan pale ak nan pi popilè nèg li te konnen. 414 00:19:28,220 --> 00:19:30,920 Li te ale nan Lou epi li te mande: -Kisa m 'fè? 415 00:19:30,920 --> 00:19:33,400 Lou wè jan zanmi l ' te vrèman lapenn. 416 00:19:33,400 --> 00:19:36,050 Oke, li te kòmanse, jis gade ki jan w ap abiye. 417 00:19:36,050 --> 00:19:38,680 Pa ou gen nenpòt rad ak yon gade diferan? 418 00:19:38,680 --> 00:19:39,660 Wi, te di Jack. 419 00:19:39,660 --> 00:19:40,840 Mwen asire w fè. 420 00:19:40,840 --> 00:19:43,320 Vini nan kay mwen an ak Mwen pral montre yo ba ou. 421 00:19:43,320 --> 00:19:44,550 Se konsa, y 'al yo ale nan Jack lan. 422 00:19:44,550 --> 00:19:47,520 Ak Jack te montre Lou ti bwat la kote li menm te kenbe tout chemiz li, 423 00:19:47,520 --> 00:19:49,260 ak pantalon l 'yo, ak chosèt l' yo. 424 00:19:49,260 --> 00:19:52,290 Lou di: -Mwen wè ou gen tout rad ou a nan yon pil. 425 00:19:52,290 --> 00:19:54,870 Poukisa nou pa ou mete kèk lòt moun yon fwa nan yon ti moman? 426 00:19:54,870 --> 00:19:58,020 >> Jack di, byen, lè m ' retire rad ak chosèt, 427 00:19:58,020 --> 00:20:00,780 Mwen lave yo, li mete yo ale nan bwat la. 428 00:20:00,780 --> 00:20:03,210 Lè sa a, vini pwochen an maten, li leve mwen hop. 429 00:20:03,210 --> 00:20:06,380 M 'ale nan ti bwat la epi pou yo jwenn rad mwen an tèt la. 430 00:20:06,380 --> 00:20:09,070 Lou byen vit reyalize pwoblèm nan ak Jack. 431 00:20:09,070 --> 00:20:12,080 Li te kenbe rad sou li, CD a, ak liv nan chemine a. 432 00:20:12,080 --> 00:20:14,420 Lè l 'rive pou yon bagay li oswa yo mete, 433 00:20:14,420 --> 00:20:17,100 li ta chwazi liv nan tèt oswa kilòt. 434 00:20:17,100 --> 00:20:19,500 Lè sa a, lè li te rive, li ta mete li dwat tounen. 435 00:20:19,500 --> 00:20:21,970 Retounen li ta ale, sou tèt pil la. 436 00:20:21,970 --> 00:20:24,460 Mwen konnen solisyon an, di yon Byen fò triyonfan. 437 00:20:24,460 --> 00:20:27,090 Ou bezwen pou aprann kòmanse lè l sèvi avèk yon keu. 438 00:20:27,090 --> 00:20:29,870 Lou pran rad la ak Jack pann yo nan klozèt la. 439 00:20:29,870 --> 00:20:32,710 Lè li fin vide rès dlo bwat la, li jis anlè li. 440 00:20:32,710 --> 00:20:36,500 >> Lè sa a, li te di, kounye a Jack, nan fen jou a, mete rad ou sou bò gòch la 441 00:20:36,500 --> 00:20:37,990 lè ou mete yo ale. 442 00:20:37,990 --> 00:20:41,300 Lè sa a, demen maten lè ou wè solèy la, jwenn rad ou 443 00:20:41,300 --> 00:20:43,440 sou bò dwat la, ki soti nan nan fen liy. 444 00:20:43,440 --> 00:20:44,880 Pa ou wè? di Lou. 445 00:20:44,880 --> 00:20:46,370 Li pral tèlman bèl. 446 00:20:46,370 --> 00:20:49,770 Ou pral mete tout bagay yon fwa anvan ou mete yon bagay de fwa. 447 00:20:49,770 --> 00:20:52,670 Se avèk tout bagay nan ke moun kap kriye nan klozèt l ', li etajè, 448 00:20:52,670 --> 00:20:55,160 Jack te kòmanse santi byen asire nan tèt li. 449 00:20:55,160 --> 00:20:59,720 Tout gras a Lou ak bèl bagay keu l 'yo. 450 00:20:59,720 --> 00:21:01,220 Oratè 1: Tout dwa, li nan adorabl. 451 00:21:01,220 --> 00:21:05,920 452 00:21:05,920 --> 00:21:10,080 Se konsa, sa ki te reyèlman ale sou anba kapo a kounye a? 453 00:21:10,080 --> 00:21:12,370 Ke nou gen endikasyon, ke nou gen malok, 454 00:21:12,370 --> 00:21:15,680 ke nou gen kapasite a yo kreye fragman nan memwa pou tèt nou 455 00:21:15,680 --> 00:21:16,344 dynamique. 456 00:21:16,344 --> 00:21:18,510 Se konsa, sa a se yon nou foto antrevwar jis lòt jou a. 457 00:21:18,510 --> 00:21:21,180 Nou pa t 'reyèlman rete sou li, men foto sa a 458 00:21:21,180 --> 00:21:24,180 ki te ale sou anba kapo a pou semèn kounye a. 459 00:21:24,180 --> 00:21:27,050 Se konsa, sa a reprezante, jis yon rektang ke nou te trase, 460 00:21:27,050 --> 00:21:28,180 memwa òdinatè w lan an. 461 00:21:28,180 --> 00:21:31,850 E petèt òdinatè w lan, oswa CS50 ID, te gen yon jigokte nan memwa oswa RAM 462 00:21:31,850 --> 00:21:33,050 oswa de jigokte oswa kat. 463 00:21:33,050 --> 00:21:34,450 Li pa reyèlman gen pwoblèm. 464 00:21:34,450 --> 00:21:37,240 Sistèm opere ou Windows oswa Mac OS oswa Linux, 465 00:21:37,240 --> 00:21:41,120 esansyèlman pèmèt pwogram ou yo panse ke li gen aksè 466 00:21:41,120 --> 00:21:42,982 antye a nan memwa òdinatè w lan an, 467 00:21:42,982 --> 00:21:45,440 menm si ou ta ka kouri pwogram miltip nan yon fwa. 468 00:21:45,440 --> 00:21:46,990 Se konsa, an reyalite, ki pa reyèlman travay. 469 00:21:46,990 --> 00:21:49,448 Men, li la kalite yon ilizyon bay tout pwogram ou yo. 470 00:21:49,448 --> 00:21:53,110 Se konsa, si ou te gen de jig nan RAM, sa a se ki jan òdinatè a ta ka panse nan li. 471 00:21:53,110 --> 00:21:57,110 >> Koulye a, azar, youn nan sa yo bagay sa yo, youn nan sa yo segments de memwa, 472 00:21:57,110 --> 00:21:58,350 yo rele yon pil. 473 00:21:58,350 --> 00:22:01,680 Ak tout bon nenpòt ki lè konsa byen lwen nan kòd ekri 474 00:22:01,680 --> 00:22:05,900 ke ou te rele yon fonksyon, pou egzanp prensipal la. 475 00:22:05,900 --> 00:22:08,410 Sonje byen, nenpòt ki lè mwen te memwa trase òdinatè a, 476 00:22:08,410 --> 00:22:10,640 Mwen toujou trase sòt de mwatye nan yon rektang isit la 477 00:22:10,640 --> 00:22:12,520 epi yo pa anmède pale sou sa ki nan pi wo a. 478 00:22:12,520 --> 00:22:15,980 Paske lè prensipal rele, mwen fè reklamasyon ke ou jwenn sa a tranch nan memwa 479 00:22:15,980 --> 00:22:16,970 ki ale desann isit la. 480 00:22:16,970 --> 00:22:20,650 Men, si prensipal rele yon fonksyon tankou swap, byen swap ale isit la. 481 00:22:20,650 --> 00:22:23,720 Apre sa, li vire soti, sa a, se kote li fini monte. 482 00:22:23,720 --> 00:22:26,277 Sou yon bagay yo rele yon pil andedan nan memwa òdinatè ou a. 483 00:22:26,277 --> 00:22:28,360 Koulye a, nan fen jounen an, sa a se jis adrese. 484 00:22:28,360 --> 00:22:30,680 Se tankou multiple zewo, multiple yon sèl, multiple 2 milya dola. 485 00:22:30,680 --> 00:22:33,130 Men, si ou panse sou li tankou sa a objè rektangilè, 486 00:22:33,130 --> 00:22:35,130 tout sa nou ap fè chak fwa nou rele yon fonksyon se 487 00:22:35,130 --> 00:22:37,180 stratifikasyon yon ti tranch nouvo sou memwa. 488 00:22:37,180 --> 00:22:41,700 Nou ap bay ki fonksyon yon ti tranch nan memwa pwòp li yo nan travay avèk yo. 489 00:22:41,700 --> 00:22:44,490 >> Epi sonje kounye a ke sa a se enpòtan. 490 00:22:44,490 --> 00:22:46,400 Paske si nou gen yon bagay tankou swap 491 00:22:46,400 --> 00:22:51,610 ak de varyab lokal tankou A ak B ak nou chanje valè sa yo soti nan yon ak de 492 00:22:51,610 --> 00:22:55,130 nan de ak yon sèl, sonje ke lè swap retounen, 493 00:22:55,130 --> 00:22:58,330 li a tankou si sa a tranch nan memwa se jis ale. 494 00:22:58,330 --> 00:23:00,080 An reyalite, li la toujou gen forensically. 495 00:23:00,080 --> 00:23:01,940 Ak yon bagay la toujou aktyèlman la. 496 00:23:01,940 --> 00:23:05,410 Men, concept, li la kòm menm si li nan konplètman disparèt. 497 00:23:05,410 --> 00:23:10,910 Se konsa, prensipal pa konnen nenpòt nan travay la ki te fè l 'nan ki fonksyon swap, 498 00:23:10,910 --> 00:23:14,890 sòf si li la aktyèlman te pase nan sa yo agiman pa konsèy oswa pa referans. 499 00:23:14,890 --> 00:23:17,790 Koulye a, solisyon an fondamantal ak sa yo ki pwoblèm ak swap 500 00:23:17,790 --> 00:23:19,970 ap pase bagay sa yo nan pa adrès. 501 00:23:19,970 --> 00:23:23,250 Men, li vire soti, tou, sa ki nan te ale sou pi wo a pati sa a 502 00:23:23,250 --> 00:23:26,330 a rektang lan tout tan tout tan sa a se ankò gen nan plis memwa moute a. 503 00:23:26,330 --> 00:23:28,790 Men, lè ou dynamique asiyen memwa, 504 00:23:28,790 --> 00:23:32,020 si li nan andedan nan GetString, ki nou ve yo te fè pou ou nan CS50 nan 505 00:23:32,020 --> 00:23:34,710 bibliyotèk, oswa si ou nèg rele malok epi mande 506 00:23:34,710 --> 00:23:37,950 sistèm nan fonksyone pou yon ti moso nan memwa, li pa soti nan pil la. 507 00:23:37,950 --> 00:23:40,960 Li vini soti nan yon lòt kote nan memwa òdinatè w lan an 508 00:23:40,960 --> 00:23:42,220 ki yo rele pil wòch la. 509 00:23:42,220 --> 00:23:43,430 Epi sa a, pa nenpòt ki diferan. 510 00:23:43,430 --> 00:23:44,285 Li nan menm RAM nan. 511 00:23:44,285 --> 00:23:45,160 Li nan menm memwa a. 512 00:23:45,160 --> 00:23:49,080 Se jis belye mouton an sa a, se moute gen olye pou yo desann isit la. 513 00:23:49,080 --> 00:23:50,750 >> Se konsa, ki sa sa vle di? 514 00:23:50,750 --> 00:23:53,650 Bon, si òdinatè ou a gen yon kantite lajan fini nan memwa 515 00:23:53,650 --> 00:23:57,450 ak chemine a ap grandi moute, se konsa konsa pale, ak pil wòch la, dapre 516 00:23:57,450 --> 00:23:59,349 flèch sa a, ap grandi desann. 517 00:23:59,349 --> 00:24:01,140 Nan lòt mo, chak fwa ou rele malok, 518 00:24:01,140 --> 00:24:03,430 w ap yo te ba yo yon ti tranch nan memwa soti nan pi wo a, 519 00:24:03,430 --> 00:24:06,630 Lè sa a, petèt yon ti kras pi piti, lè sa a yon ti kras pi ba, chak fwa ou rele malok, 520 00:24:06,630 --> 00:24:10,100 pil wòch la, li la l ', se kalite k ap grandi, 521 00:24:10,100 --> 00:24:11,950 ap grandi pi pre ak pi pre ki sa? 522 00:24:11,950 --> 00:24:13,382 Chemine a. 523 00:24:13,382 --> 00:24:14,840 Se konsa, sa sanble tankou yon bon lide? 524 00:24:14,840 --> 00:24:18,420 525 00:24:18,420 --> 00:24:22,140 Mwen vle di, ki kote li a pa reyèlman klè ki lòt bagay ou ka fè si ou sèlman 526 00:24:22,140 --> 00:24:23,910 gen yon kantite fini nan memwa. 527 00:24:23,910 --> 00:24:25,200 Men, sa a se siman move. 528 00:24:25,200 --> 00:24:27,920 De flèch Moun sa yo ki se sou yon aksidan kou pou youn ak lòt. 529 00:24:27,920 --> 00:24:31,930 >> Epi li vire soti ke nèg move, jan ki sa yo patikilyèman bon ak pwogram, 530 00:24:31,930 --> 00:24:36,140 ak ap eseye Hack nan òdinatè, ka esplwate reyalite sa a. 531 00:24:36,140 --> 00:24:38,290 An reyalite, se pou yo konsidere yon ti kras brib. 532 00:24:38,290 --> 00:24:41,350 Se konsa, sa a se yon egzanp ou ka li sou nan plis detay sou Wikipedya. 533 00:24:41,350 --> 00:24:43,100 Nou pral pwen ou nan la atik si kirye. 534 00:24:43,100 --> 00:24:45,650 Men, gen nan yon atak jeneralman li te ye tankou tanpon debòde ki 535 00:24:45,650 --> 00:24:49,570 te egziste pou osi lontan ke moun te gen kapasite a manipile 536 00:24:49,570 --> 00:24:53,120 memwa òdinatè a, espesyalman nan C. Se konsa, sa a se yon pwogram trè abitrè, 537 00:24:53,120 --> 00:24:55,130 men kite a li li l 'anba nan fon moute a. 538 00:24:55,130 --> 00:24:57,650 Main nan zetwal Char argv arg. 539 00:24:57,650 --> 00:24:59,830 Se konsa, li yon pwogram ki pran liy lòd agiman. 540 00:24:59,830 --> 00:25:03,620 Apre sa, tout prensipal aparamman se apèl yon fonksyon, rele l 'F pou senplisite. 541 00:25:03,620 --> 00:25:04,610 Apre sa, li pase nan ki sa? 542 00:25:04,610 --> 00:25:05,490 Argv nan yon sèl. 543 00:25:05,490 --> 00:25:09,320 Se konsa, li pase nan F tou sa pawòl Bondye a se ke itilizatè a tape 544 00:25:09,320 --> 00:25:11,500 nan èd memwa a apre nan Non pwogram lan nan tout. 545 00:25:11,500 --> 00:25:15,730 Se konsa, anpil tankou Seza oswa Vigenere, ki ou ta ka sonje fè ak argv. 546 00:25:15,730 --> 00:25:16,680 >> Se konsa, ki sa ki F? 547 00:25:16,680 --> 00:25:19,760 F pran nan yon fisèl kòm agiman sèl li yo, 548 00:25:19,760 --> 00:25:22,100 AKA yon etwal Char, se li menm bagay, kòm yon fisèl. 549 00:25:22,100 --> 00:25:24,920 Ak sa yo rele abitrèman bar nan egzanp sa a. 550 00:25:24,920 --> 00:25:27,710 Lè sa a, Char c 12, jis nan tèm pwofàn la, 551 00:25:27,710 --> 00:25:31,750 ki sa ki Char c bracket 12 fè pou nou? 552 00:25:31,750 --> 00:25:33,440 Ki sa ki nan li fè? 553 00:25:33,440 --> 00:25:36,490 Allocation memwa, espesyalman 12 bytes pou 12 charaktèr. 554 00:25:36,490 --> 00:25:36,990 Egzakteman. 555 00:25:36,990 --> 00:25:40,000 Lè sa a, liy ki sot pase a, brase ak kopi, ou te pwobableman pa t 'wè. 556 00:25:40,000 --> 00:25:43,360 Sa a se yon kopi fisèl fonksyon ki gen objektif nan lavi 557 00:25:43,360 --> 00:25:48,160 se a kapab bay kopi dezyèm agiman li yo nan premye agiman li yo, 558 00:25:48,160 --> 00:25:51,190 men se sèlman jiska yon sèten kantite bytes. 559 00:25:51,190 --> 00:25:53,860 Se konsa, twazyèm agiman an di, konbyen bytes ou ta dwe kopi? 560 00:25:53,860 --> 00:25:56,720 Longè a nan ba, tou sa itilizatè a tape nan. 561 00:25:56,720 --> 00:25:59,320 Apre sa, sa ki nan bar, ki fisèl, se 562 00:25:59,320 --> 00:26:02,330 kopye nan memwa a pwente nan nan C. 563 00:26:02,330 --> 00:26:04,060 >> Se konsa, sa a sanble kalite estipid, epi li se. 564 00:26:04,060 --> 00:26:06,300 Li se yon egzanp parvenus, men li la reprezantan 565 00:26:06,300 --> 00:26:10,100 nan yon klas nan vektè atak, yon fason pou atake yon pwogram. 566 00:26:10,100 --> 00:26:15,050 Tout se amann ak bon si itilizatè a kalite nan yon mo sa a, se 11 karaktè 567 00:26:15,050 --> 00:26:18,040 pou pi plis, plis antislach a zewo. 568 00:26:18,040 --> 00:26:22,830 E si ki kalite itilizatè nan plis pase 11 oswa 12 oswa 20 oswa 50 karaktè? 569 00:26:22,830 --> 00:26:25,090 Ki sa ki nan pwogram sa a pral fè? 570 00:26:25,090 --> 00:26:29,360 Ki kapab seg fay. Li k ap pase je fèmen kopi tout bagay nan ba moute 571 00:26:29,360 --> 00:26:31,750 nan longè li yo, ki se literalman tout bagay nan ba, 572 00:26:31,750 --> 00:26:36,307 nan adrès la pwente nan C. Men, C te sèlman preemptively bay kòm 12 bytes. 573 00:26:36,307 --> 00:26:37,640 Men, gen nan pa gen chèk adisyonèl. 574 00:26:37,640 --> 00:26:38,700 Gen nan pa gen si kondisyon. 575 00:26:38,700 --> 00:26:40,580 Gen nan pa gen erè tcheke isit la. 576 00:26:40,580 --> 00:26:43,270 >> Se konsa, ki sa pwogram sa a se pral fè se jis je fèmen 577 00:26:43,270 --> 00:26:45,750 kopi yon sèl bagay nan lòt la. 578 00:26:45,750 --> 00:26:47,880 Se konsa, si nou trase sa a kòm yon foto, isit la nan 579 00:26:47,880 --> 00:26:49,860 jis yon tranch nan espas ki la memwa. 580 00:26:49,860 --> 00:26:53,470 Se konsa, remake nan pati anba a, nou gen ba a lokal varyab. 581 00:26:53,470 --> 00:26:57,330 Se konsa, ki konsèy ki k ap pase yo store-- olye ke agiman lokal sa a, se 582 00:26:57,330 --> 00:26:58,672 ale nan magazen ba a fisèl. 583 00:26:58,672 --> 00:27:00,380 Lè sa a, remake jis pi wo a li nan yon pil, 584 00:27:00,380 --> 00:27:02,505 paske chak fwa ou mande pou memwa sou chemine a, 585 00:27:02,505 --> 00:27:04,310 li ale yon ti jan pi wo a li pictorially, 586 00:27:04,310 --> 00:27:06,270 avi ke nou te gen 12 bytes la. 587 00:27:06,270 --> 00:27:10,690 Yon sèl nan gòch anwo se C bracket zewo ak yon sèl nan pati anba dwa se C bracket 11. 588 00:27:10,690 --> 00:27:12,870 Sa a jis ki jan òdinatè yo ale nan mete l 'deyò. 589 00:27:12,870 --> 00:27:18,300 Se konsa, jis entwitif, si gen plis ba pase 12 karaktè nan total, ki gen ladan 590 00:27:18,300 --> 00:27:25,790 antislach a zewo, kote se la 12 oswa bracket a C 12 pral ale? 591 00:27:25,790 --> 00:27:28,440 Oswa olye kote se 12yèm la karaktè oswa pèsonaj la 13th, 592 00:27:28,440 --> 00:27:30,900 pèsonaj la santyèm pral nan fen moute nan foto a? 593 00:27:30,900 --> 00:27:33,400 Pi wo pase oswa anba a? 594 00:27:33,400 --> 00:27:36,300 >> Dwa, paske menm si chemine a li menm ap grandi anwo, 595 00:27:36,300 --> 00:27:39,590 yon fwa ou te mete bagay nan li, li pou rezon konsepsyon, 596 00:27:39,590 --> 00:27:41,294 mete memwa a depi anwo jouk anba. 597 00:27:41,294 --> 00:27:44,460 Se konsa, si ou te gen plis pase 12 bytes, w ap ale nan kòmanse recouvrir ba. 598 00:27:44,460 --> 00:27:47,280 Koulye a, sa a, se yon ensèk, men li la pa reyèlman yon kontra gwo. 599 00:27:47,280 --> 00:27:51,130 Men, li se yon kontra gwo, paske gen nan plis bagay ap pase nan memwa. 600 00:27:51,130 --> 00:27:53,074 Se konsa, isit la nan ki jan nou ta ka mete hello, yo dwe klè. 601 00:27:53,074 --> 00:27:54,490 Si m 'tape nan alo nan èd memwa a. 602 00:27:54,490 --> 00:27:59,330 H-E-L-L-O antislach zewo, fini moute nan moun 12 bytes, epi nou ap super ki an sekirite. 603 00:27:59,330 --> 00:28:00,330 Tout bagay anfòm. 604 00:28:00,330 --> 00:28:03,020 Men, si mwen tape yon bagay pi long, ki kapab li nan 605 00:28:03,020 --> 00:28:05,860 ale nan ranpe nan espas bar. 606 00:28:05,860 --> 00:28:08,405 Men, pi mal ankò, li vire soti tout tan sa a, 607 00:28:08,405 --> 00:28:11,530 menm si nou pa janm te te pale osijè de li, se chemine a itilize pou lòt bagay. 608 00:28:11,530 --> 00:28:13,560 Li pa jis varyab lokal yo. 609 00:28:13,560 --> 00:28:15,100 >> C se yon lang nivo ki ba anpil. 610 00:28:15,100 --> 00:28:17,810 Epi, se sòt de an kachèt sèvi ak chemine a tou 611 00:28:17,810 --> 00:28:21,260 sonje lè yon se fonksyon rele, ki sa 612 00:28:21,260 --> 00:28:26,040 adrès la se nan fonksyon an anvan, se konsa li ka sote tounen nan ki fonksyon. 613 00:28:26,040 --> 00:28:29,980 Se konsa, lè apèl prensipal swap, nan mitan bagay sa yo pouse sou chemine a 614 00:28:29,980 --> 00:28:34,380 yo pa sèlman swaps varyab lokal yo, oswa agiman li yo, tou an kachèt pouse 615 00:28:34,380 --> 00:28:37,510 sou chemine a kòm reprezante pa tranch la wouj isit la, 616 00:28:37,510 --> 00:28:40,520 se adrès ki nan prensipal fizikman nan memwa òdinatè w lan an, 617 00:28:40,520 --> 00:28:44,180 se konsa ke lè swap a se fè, òdinatè a konnen mwen bezwen pou tounen nan prensipal 618 00:28:44,180 --> 00:28:46,760 epi fini egzekite fonksyon prensipal la. 619 00:28:46,760 --> 00:28:51,960 Se konsa, sa a se danjere kounye a, paske si kalite yo itilizatè nan byen plis pase hello, 620 00:28:51,960 --> 00:28:57,030 sa yo ki D 'itilizatè a clobbers oswa ranplas ki seksyon wouj, 621 00:28:57,030 --> 00:28:59,820 lojikman si òdinatè a jis ale nan je fèmen asime 622 00:28:59,820 --> 00:29:03,830 ki bytes yo nan ki tranch wouj yo adrès la nan ki li ta dwe retounen, 623 00:29:03,830 --> 00:29:09,020 sa ki si advèsè a se entelijan ase oswa chans ase yo mete yon sekans nan bytes 624 00:29:09,020 --> 00:29:13,450 gen ki sanble ak yon adrès, men li la adrès la nan kòd 625 00:29:13,450 --> 00:29:18,730 ke li oswa li te vle òdinatè a al touye olye pou yo prensipal yo? 626 00:29:18,730 --> 00:29:21,670 >> Nan lòt mo, si sa a itilizatè se sezisman nan èd memwa a, 627 00:29:21,670 --> 00:29:23,850 se pa jis yon bagay anoden tankou hello, 628 00:29:23,850 --> 00:29:28,210 men li la aktyèlman Kòd sa a, se ekivalan yo efase tout dosye itilizatè sa a? 629 00:29:28,210 --> 00:29:30,060 Oswa voye yon imèl modpas yo m 'konsa? 630 00:29:30,060 --> 00:29:31,940 Oswa kòmanse antre yo frap, dwa? 631 00:29:31,940 --> 00:29:34,920 Gen se yon fason, se pou yo ladann jodi a, ke yo te kapab tape nan pa sèlman alo 632 00:29:34,920 --> 00:29:36,711 mond oswa non yo, yo te kapab esansyèlman 633 00:29:36,711 --> 00:29:39,570 pase nan kòd, zewo ak yo menm, ki òdinatè a 634 00:29:39,570 --> 00:29:43,450 erè pou tou de ak yon Kòd adrès. 635 00:29:43,450 --> 00:29:48,950 Se konsa, yon ti jan kwake abstrè, si nan kalite itilizatè nan ase Kòd konfwontasyon 636 00:29:48,950 --> 00:29:52,330 ke nou pral isit la tankou jeneralizasyon A. A se atak oswa lènmi. 637 00:29:52,330 --> 00:29:53,140 Se konsa, jis move bagay. 638 00:29:53,140 --> 00:29:55,306 Nou pa pran swen sou nan nimewo oswa zewo yo oswa moun 639 00:29:55,306 --> 00:29:59,470 jodi a, sa yo ki ou fini ranplasan ki seksyon wouj, 640 00:29:59,470 --> 00:30:01,580 remake ke sekans nan bytes. 641 00:30:01,580 --> 00:30:05,020 O 835 C zewo uit zewo. 642 00:30:05,020 --> 00:30:08,960 Epi, koulye a jan atik Wikipedya a isit la te pwopoze, si ou kounye a aktyèlman kòmanse 643 00:30:08,960 --> 00:30:12,460 etikèt bytes yo nan òdinatè w lan nan memwa, ki sa atik la Wikipedia se 644 00:30:12,460 --> 00:30:19,060 parenaj se ke, sa ki si adrès la nan ki multiple gòch tèt se 80 C 0 3508. 645 00:30:19,060 --> 00:30:22,200 >> Nan lòt mo, si nèg la move se entelijan ase ak kòd li oswa li 646 00:30:22,200 --> 00:30:26,650 ki aktyèlman mete yon nimewo isit la ke koresponn ak adrès ki nan kòd la 647 00:30:26,650 --> 00:30:29,180 li oswa li te sou fòm piki nan òdinatè a, ou 648 00:30:29,180 --> 00:30:31,050 ka je chèch ak òdinatè a nan fè anyen. 649 00:30:31,050 --> 00:30:34,140 Retire dosye, Hamelin bagay sa yo, l'ap pran sant trafik ou, 650 00:30:34,140 --> 00:30:36,710 literalman anyen ta ka sou fòm piki nan òdinatè a. 651 00:30:36,710 --> 00:30:39,220 Se konsa, yon debòde tanpon atak nan nwayo li 652 00:30:39,220 --> 00:30:43,530 se jis yon estipid, estipid prensip nan yon etalaj ki 653 00:30:43,530 --> 00:30:45,840 pa t 'gen limit li yo w tcheke yo. 654 00:30:45,840 --> 00:30:48,850 Lè sa a se ki sa ki super danjere ak ansanm super pwisan 655 00:30:48,850 --> 00:30:52,560 nan C se ke nou tout bon gen aksè nan nenpòt kote nan memwa a. 656 00:30:52,560 --> 00:30:55,320 Li a jiska nou, pwogramasyon yo, ki ekri kòd la orijinal 657 00:30:55,320 --> 00:30:59,330 tcheke longè a nan nenpòt ki reprize ranje ke nou ap manipile. 658 00:30:59,330 --> 00:31:00,750 Se konsa, yo dwe klè, sa ki nan ranje a? 659 00:31:00,750 --> 00:31:03,190 Si nou woule tounen nan sa a Kòd, mwen pa ta dwe jis 660 00:31:03,190 --> 00:31:08,000 chanje longè a nan ba, ki sa lòt mwen ta dwe dwe tcheke? 661 00:31:08,000 --> 00:31:10,620 Ki lòt bagay mwen ta dwe ap fè anpeche sa a atak antyèman? 662 00:31:10,620 --> 00:31:14,110 Mwen pa vle jis je fèmen di ke ou ta dwe kopi kòm anpil bytes 663 00:31:14,110 --> 00:31:16,140 kòm se longè a nan ba. 664 00:31:16,140 --> 00:31:18,910 Mwen vle di, kopi kòm bytes anpil ke yo se nan ba 665 00:31:18,910 --> 00:31:24,090 jiska resevwa lajan nan memwa, oswa 12 omaksimòm. 666 00:31:24,090 --> 00:31:27,450 Se konsa, mwen bezwen kèk kalite si kondisyon ki fè tcheke longè a nan ba, 667 00:31:27,450 --> 00:31:32,800 men si li depase 12, nou jis difisil Kòd 12 kòm maksimòm distans la posib. 668 00:31:32,800 --> 00:31:35,910 Sinon tanpon la sa yo rele atak debòde ka rive. 669 00:31:35,910 --> 00:31:38,451 Nan pati anba a nan tout sa yo glisad, si w ap kirye yo li plis 670 00:31:38,451 --> 00:31:41,200 se atik orijinal la aktyèl si ou ta renmen pran yon gade. 671 00:31:41,200 --> 00:31:44,550 >> Men koulye a,, nan mitan pri yo peye isit la te inefikas. 672 00:31:44,550 --> 00:31:46,680 Se konsa, sa ki te yon rapid ki ba nivo nan sa ki gade 673 00:31:46,680 --> 00:31:49,709 pwoblèm ka leve kounye a ke nou gen aksè a memwa òdinatè a. 674 00:31:49,709 --> 00:31:51,750 Men, yon lòt pwoblèm nou deja bite nan Lendi 675 00:31:51,750 --> 00:31:53,800 te jis ensifizans la nan yon lis lye. 676 00:31:53,800 --> 00:31:56,019 Nou se tounen nan tan lineyè. 677 00:31:56,019 --> 00:31:57,560 Nou pa gen yon etalaj vwazen. 678 00:31:57,560 --> 00:31:58,980 Nou pa gen aksè o aza. 679 00:31:58,980 --> 00:32:00,710 Nou pa ka sèvi ak notasyon bracket kare. 680 00:32:00,710 --> 00:32:04,590 Nou literalman gen yo sèvi ak yon riban pandan y ap tankou yonn nan mwen te ekri yon ti moman de sa. 681 00:32:04,590 --> 00:32:09,740 Men, nan Lendi, nou te deklare ke nou kapab ranpe tounen nan domèn nan efikasite 682 00:32:09,740 --> 00:32:13,040 akonplisman yon bagay sa a, se logaritmik petèt, oswa pi bon toujou, 683 00:32:13,040 --> 00:32:16,120 petèt menm yon bagay sa a, se sa yo rele tan konstan. 684 00:32:16,120 --> 00:32:19,840 Se konsa, ki jan nou ka fè sa lè l sèvi avèk sa yo nouvo zouti, adrès sa yo, endikasyon sa yo, 685 00:32:19,840 --> 00:32:22,210 ak anfile bagay nan pwòp nou an? 686 00:32:22,210 --> 00:32:23,960 Oke, ta kwè ke isit la, sa yo, se yon pakèt moun 687 00:32:23,960 --> 00:32:27,170 nan nimewo ke nou vle nan magazen nan yon estrikti done ak rechèch efikasite. 688 00:32:27,170 --> 00:32:30,960 Nou ka absoliman remonte a semèn de, jete sa yo nan yon etalaj, 689 00:32:30,960 --> 00:32:33,150 ak rechèch yo lè l sèvi avèk rechèch binè. 690 00:32:33,150 --> 00:32:34,040 Divize ak konkeri. 691 00:32:34,040 --> 00:32:37,720 Lè an reyalite ou te ekri binè rechèch nan PSET3, 692 00:32:37,720 --> 00:32:40,100 kote ou aplike pwogram nan jwenn. 693 00:32:40,100 --> 00:32:40,890 Men, ou konnen ki sa. 694 00:32:40,890 --> 00:32:45,060 Genyen kalite yon plis entelijan fason pou fè sa a. 695 00:32:45,060 --> 00:32:47,390 Li se yon ti kras pi plis sofistike ak li petèt 696 00:32:47,390 --> 00:32:50,830 pèmèt nou wè poukisa binè rechèch se konsa anpil pi vit. 697 00:32:50,830 --> 00:32:52,980 Premyèman, se pou yo prezante nosyon de yon pye bwa. 698 00:32:52,980 --> 00:32:54,730 Ki menm si nan pyebwa reyalite kalite 699 00:32:54,730 --> 00:32:57,730 grandi tankou sa a, nan mond lan nan òdinatè syans yo kalite grandi anba 700 00:32:57,730 --> 00:33:00,830 tankou yon pyebwa fanmi, ki kote ou gen granparan ou a oswa granparan gwo 701 00:33:00,830 --> 00:33:04,580 oswa etajèr nan tèt la, patriyach a ak matron a nan fanmi an, yon sèl jis 702 00:33:04,580 --> 00:33:07,930 sa yo rele rasin, ne, pi ba a ki se pitit li yo, 703 00:33:07,930 --> 00:33:11,442 anba a ki se pitit li yo, oswa pitit pitit li yo pi plis jeneralman. 704 00:33:11,442 --> 00:33:13,400 Ak nenpòt moun ki pandye nan fon an nan fanmi an 705 00:33:13,400 --> 00:33:16,070 pye bwa, san konte ke yo te nan pi piti nan fanmi an, 706 00:33:16,070 --> 00:33:19,520 kapab tou jis pou generic rele fèy yo nan pyebwa sa a. 707 00:33:19,520 --> 00:33:21,800 >> Se konsa, sa a se jis yon pakèt moun nan mo ak definisyon 708 00:33:21,800 --> 00:33:25,790 pou yon bagay yo rele yon pye bwa nan òdinatè syans, anpil tankou yon pyebwa fanmi yo. 709 00:33:25,790 --> 00:33:28,770 Men, gen nan amateur enkarnasyon nan pye bwa, youn nan ki 710 00:33:28,770 --> 00:33:30,780 yo rele sa yon pye bwa rechèch binè. 711 00:33:30,780 --> 00:33:34,380 Apre sa, ou kapab kalite toumante apa sa bagay sa a fè. 712 00:33:34,380 --> 00:33:37,180 Oke, li nan binè nan ki sans? 713 00:33:37,180 --> 00:33:41,455 Ki kote binè nan soti nan isit la? 714 00:33:41,455 --> 00:33:41,955 Padon? 715 00:33:41,955 --> 00:33:45,961 716 00:33:45,961 --> 00:33:47,210 Li nan pa tèlman yon swa oswa. 717 00:33:47,210 --> 00:33:52,000 Li nan plis ke chak nan nœuds yo pa gen okenn plis pase de timoun yo, jan nou wè isit la. 718 00:33:52,000 --> 00:33:54,990 An jeneral, yon tree-- ak paran ou ak pwogram granparan 719 00:33:54,990 --> 00:33:57,640 ka gen kòm anpil timoun oswa grandkids menm jan yo aktyèlman vle, 720 00:33:57,640 --> 00:34:00,820 e konsa pou egzanp gen nou gen twa timoun koupe ki ne men dwat, 721 00:34:00,820 --> 00:34:05,480 men nan yon pye bwa binè, yon ne gen zewo, yon sèl, oswa de timoun omaksimòm. 722 00:34:05,480 --> 00:34:08,496 Epi sa a, yon pwopriyete bèl, paske si li nan capped pa de, 723 00:34:08,496 --> 00:34:10,620 nou ap ale pou kapab jwenn yon baz boutèy demi lit ti kras de 724 00:34:10,620 --> 00:34:11,975 aksyon pase sou isit la finalman. 725 00:34:11,975 --> 00:34:13,350 Se konsa, nou gen yon bagay logaritmik. 726 00:34:13,350 --> 00:34:14,558 Men, plis sou sa nan yon moman. 727 00:34:14,558 --> 00:34:19,810 Search pyebwa vle di ke nimewo yo yo ranje sa yo ke timoun nan bò gòch la 728 00:34:19,810 --> 00:34:22,429 valè ki pi konsekan pase rasin lan. 729 00:34:22,429 --> 00:34:26,010 Ti gason dwat li yo se pi gwo pase rasin lan. 730 00:34:26,010 --> 00:34:29,290 Nan lòt mo, si ou pran nenpòt nan la nœuds, ti sèk ki genyen nan foto sa a, 731 00:34:29,290 --> 00:34:31,840 ak sanble sou bò gòch li yo pitit ak pitit dwat li yo, 732 00:34:31,840 --> 00:34:34,739 premye a ta dwe mwens pase, dezyèm lan yo ta dwe pi gran pase. 733 00:34:34,739 --> 00:34:36,159 Se konsa, saniti tcheke 55. 734 00:34:36,159 --> 00:34:37,780 Li nan kite timoun se 33. 735 00:34:37,780 --> 00:34:38,620 Li nan pi piti pase. 736 00:34:38,620 --> 00:34:40,929 55, pitit dwa li se 77. 737 00:34:40,929 --> 00:34:41,783 Li nan pi gwo pase. 738 00:34:41,783 --> 00:34:43,199 Epi sa a, yon definisyon repetitif. 739 00:34:43,199 --> 00:34:46,480 Nou te kapab tcheke chak youn nan moun ki nœuds ak modèl nan menm ta kenbe. 740 00:34:46,480 --> 00:34:49,389 >> Se konsa, sa ki nan bèl nan yon pyebwa rechèch binè, se 741 00:34:49,389 --> 00:34:52,204 ke yon moun, nou ka aplike li ak yon struct, jis renmen sa a. 742 00:34:52,204 --> 00:34:54,620 E menm si nou ap voye anpil nan estrikti a ou, 743 00:34:54,620 --> 00:34:56,560 yo ap yon ti jan entwisyon kounye a èspere ke. 744 00:34:56,560 --> 00:35:00,570 Sentaks la se toujou Esoteric pou asire w, men sa ki nan yon ne nan sa a 745 00:35:00,570 --> 00:35:02,786 context-- epi nou kenbe lè l sèvi avèk mo ne la, 746 00:35:02,786 --> 00:35:04,910 si li nan yon rektang sou ekran an oswa yon sèk, 747 00:35:04,910 --> 00:35:08,970 li nan jis kèk veso jenerik, nan ka sa a nan yon pye bwa, tankou yon sèl la 748 00:35:08,970 --> 00:35:11,780 nou te wè, nou bezwen yon nonb antye relatif nan chak nan nœuds yo 749 00:35:11,780 --> 00:35:15,460 ak Lè sa a mwen bezwen de endikasyon pwente ak timoun nan bò gòch ak pitit an dwa, 750 00:35:15,460 --> 00:35:16,590 respektivman. 751 00:35:16,590 --> 00:35:20,730 Se konsa, sa a, se ki jan nou ta ka aplike ke nan yon struct. 752 00:35:20,730 --> 00:35:22,315 Ak ki jan ta ka mwen aplike li nan kòd? 753 00:35:22,315 --> 00:35:26,730 Oke, kite a pran yon rapid gade nan sa a ti egzanp. 754 00:35:26,730 --> 00:35:29,820 Li pa fonksyonèl, men mwen te kopye ak kole ki estrikti. 755 00:35:29,820 --> 00:35:33,510 Men, si fonksyon mwen pou yon binè se pye bwa rechèch rele rechèch, 756 00:35:33,510 --> 00:35:36,980 ak sa a pran de agiman, yon nonb antye relatif N ak yon konsèy 757 00:35:36,980 --> 00:35:41,400 nan yon ne, se konsa yon konsèy bò pyebwa ki oswa yon konsèy nan rasin lan nan yon pye bwa, 758 00:35:41,400 --> 00:35:43,482 ki jan mwen ale sou pou chèche N? 759 00:35:43,482 --> 00:35:45,440 Oke, premye, paske mwen se fè fas ak endikasyon, 760 00:35:45,440 --> 00:35:46,750 Mwen pral fè yon chèk saniti. 761 00:35:46,750 --> 00:35:54,279 Si egal pyebwa egal nil, se N nan pye bwa sa a oswa ou pa nan pye bwa sa a? 762 00:35:54,279 --> 00:35:55,070 Li pa kapab, dwa? 763 00:35:55,070 --> 00:35:56,870 Si mwen menm ki sot pase nil, pa gen anyen la. 764 00:35:56,870 --> 00:35:59,230 Mwen ta ka kòm byen jis je fèmen di retounen fo. 765 00:35:59,230 --> 00:36:04,050 Si pa gen anyen ou bay m ', mwen siman pa kapab jwenn nenpòt N. Nimewo Se konsa, ki lòt bagay ta ka mwen 766 00:36:04,050 --> 00:36:04,750 tcheke kounye a? 767 00:36:04,750 --> 00:36:12,830 Mwen pral di byen lòt moun si se N mwens pase tou sa se nan ne la pyebwa 768 00:36:12,830 --> 00:36:16,300 ke mwen ve yo te lage N valè. 769 00:36:16,300 --> 00:36:20,270 Nan lòt mo, si kantite a mwen se kap chèche, N, se mwens pase ne nan 770 00:36:20,270 --> 00:36:21,340 ke mwen gade nan. 771 00:36:21,340 --> 00:36:23,190 Apre sa, ne la M 'ap chache a yo rele pye bwa, 772 00:36:23,190 --> 00:36:26,370 ak sonje nan egzanp la anvan yo ka resevwa nan valè a nan yon konsèy, 773 00:36:26,370 --> 00:36:28,310 Mwen sèvi ak notasyon a flèch. 774 00:36:28,310 --> 00:36:35,960 Se konsa, si N se mwens pase flèch pyebwa N, mwen vle ale concept kite. 775 00:36:35,960 --> 00:36:38,590 Kouman pou mwen eksprime chèche rete? 776 00:36:38,590 --> 00:36:41,560 Pou yo kapab klè, si sa a se foto a nan kesyon, 777 00:36:41,560 --> 00:36:44,612 epi mwen te te pase ki topmost arrow ki nan lonje dwèt desann. 778 00:36:44,612 --> 00:36:45,570 Sa a konsèy pyebwa m 'yo. 779 00:36:45,570 --> 00:36:48,060 M 'ap lonje dwèt nan rasin lan nan pyebwa sa a. 780 00:36:48,060 --> 00:36:52,100 Apre sa, mwen ap chache di, pou nimewo a 44, abitrèman. 781 00:36:52,100 --> 00:36:55,300 Èske 44 mwens pase oswa pi gran pase 55 evidamman? 782 00:36:55,300 --> 00:36:56,360 Se konsa, li mwens pase. 783 00:36:56,360 --> 00:36:58,760 Se konsa, sa a si kondisyon aplike. 784 00:36:58,760 --> 00:37:03,981 Se konsa, concept, ki sa mwen vle rechèch pwochen si M 'ap chache 44? 785 00:37:03,981 --> 00:37:04,480 Yeah? 786 00:37:04,480 --> 00:37:08,310 787 00:37:08,310 --> 00:37:11,100 >> Egzakteman, mwen vle rechèch timoun nan gòch, 788 00:37:11,100 --> 00:37:12,789 oswa pye bwa a sub-rete nan foto sa a. 789 00:37:12,789 --> 00:37:14,830 Lè an reyalite, se pou m 'nan foto a desann isit la 790 00:37:14,830 --> 00:37:17,770 pou jis yon ti moman, depi Mwen pa ka grate sa a soti. 791 00:37:17,770 --> 00:37:21,150 Si mwen kòmanse isit la nan 55, ak Mwen konnen ke valè a 44 792 00:37:21,150 --> 00:37:23,180 M 'ap chache se bò gòch la, li nan kalite 793 00:37:23,180 --> 00:37:26,010 de tankou chire liv la telefòn nan mwatye oswa chire pye bwa a nan mwatye. 794 00:37:26,010 --> 00:37:29,660 Mwen pa gen pran swen sou sa a mwatye tout antye de pyebwa sa a. 795 00:37:29,660 --> 00:37:33,270 E ankò, kiryozite an tèm de la estrikti, bagay sa a sou isit la ki 796 00:37:33,270 --> 00:37:36,682 kòmanse ak 33, ki tèt li se yon pye bwa rechèch binè. 797 00:37:36,682 --> 00:37:39,890 M 'te di pawòl Bondye a repetitif anvan paske tout bon sa a se yon estrikti done ki 798 00:37:39,890 --> 00:37:41,707 pa definisyon se repetitif. 799 00:37:41,707 --> 00:37:44,540 Ou ta ka gen yon pye bwa sa a, se sa a gwo, men chak youn nan timoun li yo 800 00:37:44,540 --> 00:37:46,870 reprezante yon pye bwa jis yon ti kras pi piti. 801 00:37:46,870 --> 00:37:50,910 Olye pou yo li ke yo te papa oswa granmè, kounye a li nan jis manman 802 00:37:50,910 --> 00:37:54,300 or-- Mwen pa ka say-- pa manman oubyen papa, ki ta ka etranj. 803 00:37:54,300 --> 00:37:59,000 Olye de sa de timoun yo gen ta dwe tankou frè ak frè ak sè. 804 00:37:59,000 --> 00:38:01,120 Yon nouvo jenerasyon nan pye bwa a fanmi yo. 805 00:38:01,120 --> 00:38:02,900 Men, struktural, li nan lide la menm. 806 00:38:02,900 --> 00:38:06,790 Epi li vire soti mwen gen yon fonksyon ak ki mwen kapab fè rechèch yon rechèch binè 807 00:38:06,790 --> 00:38:07,290 pye bwa. 808 00:38:07,290 --> 00:38:08,680 Li te rele rechèch. 809 00:38:08,680 --> 00:38:17,870 Mwen rechèch pou N nan pye bwa bò gòch flèch lòt bagay si N gen plis pouvwa pase valè a 810 00:38:17,870 --> 00:38:18,870 ke mwen se kounye a nan. 811 00:38:18,870 --> 00:38:20,800 55 nan istwa a yon ti moman de sa. 812 00:38:20,800 --> 00:38:23,780 Mwen gen yon fonksyon rele rechèch ke mwen ka jis 813 00:38:23,780 --> 00:38:29,660 pase N sa a epi recursive rechèch pye bwa a sub-ak jis retounen 814 00:38:29,660 --> 00:38:30,620 tou sa ki repons. 815 00:38:30,620 --> 00:38:33,530 Lòt Bagay mwen te gen kèk ka baz final isit la. 816 00:38:33,530 --> 00:38:35,310 >> Ki sa ki se ka a final? 817 00:38:35,310 --> 00:38:36,570 Tree se swa nil. 818 00:38:36,570 --> 00:38:39,980 Valè a mwen swa chèche pou se mwens pase sa li oswa pi plis pase sa 819 00:38:39,980 --> 00:38:42,610 oswa egal a li. 820 00:38:42,610 --> 00:38:44,750 Apre sa, mwen te kapab di egal egal, men lojikman li a 821 00:38:44,750 --> 00:38:46,500 ekivalan a jis di lòt bagay isit la. 822 00:38:46,500 --> 00:38:49,150 Se konsa, vre se ki jan mwen jwenn yon bagay. 823 00:38:49,150 --> 00:38:51,710 Se konsa, èspere ke sa a se yon menm plis irezistib egzanp 824 00:38:51,710 --> 00:38:54,900 pase fonksyon an sigma estipid nou te fè yon konferans kèk tounen, 825 00:38:54,900 --> 00:38:58,360 kote li te menm jan fasil yo sèvi ak yon riban yo konte moute tout nimewo yo soti nan yon 826 00:38:58,360 --> 00:39:02,390 N. Isit la ak yon estrikti done ki li menm se recursive 827 00:39:02,390 --> 00:39:07,050 defini ak recursive trase, kounye a nou gen kapasite nan eksprime tèt nou 828 00:39:07,050 --> 00:39:09,780 nan kòd ki li menm se repetitif. 829 00:39:09,780 --> 00:39:12,580 Se konsa, sa a se kòd la egzak menm isit la. 830 00:39:12,580 --> 00:39:14,400 >> Se konsa, sa lòt pwoblèm nou ka rezoud? 831 00:39:14,400 --> 00:39:18,160 Se konsa, yon etap rapid lwen pye bwa pou jis yon ti moman. 832 00:39:18,160 --> 00:39:20,130 Isit la se, di, drapo a German. 833 00:39:20,130 --> 00:39:22,020 Apre sa, nan byen klè yon modèl nan drapo sa a. 834 00:39:22,020 --> 00:39:23,811 Apre sa, nan anpil nan drapo nan mond lan ki 835 00:39:23,811 --> 00:39:27,560 se kòm senp tankou sa a an tèm de koulè yo ak modèl. 836 00:39:27,560 --> 00:39:31,930 Men, si ke sa a se ki estoke kòm yon .GIF, Oswa yon JPEG, oswa bitmap, oswa yon ping, 837 00:39:31,930 --> 00:39:34,240 nenpòt fòma dosye grafik ak kote ou ap yo konnen yo, 838 00:39:34,240 --> 00:39:36,460 kèk nan yo ki nou ap jwe ak nan pset4. 839 00:39:36,460 --> 00:39:41,550 Sa a pa sanble entérésan nan magazen pixel nwa, pixel nwa, pixel nwa, 840 00:39:41,550 --> 00:39:44,790 dot, dot, dot, yon pakèt antye nan piksèl nwa pou scanline a an premye, 841 00:39:44,790 --> 00:39:47,430 oswa ranje, Lè sa a, yon pakèt antye nan menm, Lè sa a, yon pakèt moun nan tout antye 842 00:39:47,430 --> 00:39:49,530 nan menm bagay la, ak lè sa a yon pakèt antye nan piksèl wouj, 843 00:39:49,530 --> 00:39:53,020 piksèl wouj, piksèl wouj, Lè sa a, yon antye pakèt moun sou piksèl jòn, jòn, dwa? 844 00:39:53,020 --> 00:39:55,050 >> Genyen ensifizans sa yo isit la. 845 00:39:55,050 --> 00:39:59,040 Ki jan ou ta entwitif konpresyon drapo Alman an 846 00:39:59,040 --> 00:40:01,320 si mete ann aplikasyon li kòm yon dosye? 847 00:40:01,320 --> 00:40:04,940 Fè tankou ki enfòmasyon nou pa kapab anmède estoke sou ki gen kapasite yo nan lòd 848 00:40:04,940 --> 00:40:08,040 a diminye gwosè dosye nou yo soti nan tankou yon megaokte nan yon kilobit, yon bagay 849 00:40:08,040 --> 00:40:09,430 pi piti a? 850 00:40:09,430 --> 00:40:13,130 Sa fè manti èkse nan isit la yo dwe klè? 851 00:40:13,130 --> 00:40:13,880 Ki sa ou ta ka fè? 852 00:40:13,880 --> 00:40:14,380 Yeah? 853 00:40:14,380 --> 00:40:21,380 854 00:40:21,380 --> 00:40:21,970 Egzakteman. 855 00:40:21,970 --> 00:40:24,550 Poukisa nou pa olye ke sonje koulè a ​​nan chak pixel reprize 856 00:40:24,550 --> 00:40:28,200 jis tankou ou ap fè nan pset4 ak fòma a dosye bitmap, 857 00:40:28,200 --> 00:40:32,060 poukisa yo pa ou jis reprezante nan leftmost kolòn nan piksèl, pou egzanp 858 00:40:32,060 --> 00:40:35,370 yon pakèt moun sou piksèl nwa, yon pakèt moun nan wouj, ak yon pakèt moun sou jòn, 859 00:40:35,370 --> 00:40:39,210 ak Lè sa a jis yon jan kanmenm programme a lide sou repete sa a 100 fwa 860 00:40:39,210 --> 00:40:41,020 oswa repete sa a 1,000 fwa? 861 00:40:41,020 --> 00:40:43,430 Ki kote 100 oswa 1,000 se jis yon nonb antye relatif, kidonk, ou 862 00:40:43,430 --> 00:40:47,290 ka jwenn lwen ak jis yon nimewo yon sèl olye pou yo dè santèn oswa dè milye 863 00:40:47,290 --> 00:40:48,270 nan plis piksèl. 864 00:40:48,270 --> 00:40:50,990 Ak tout bon, sa a, se ki jan nou te kapab konpresyon drapo a German. 865 00:40:50,990 --> 00:40:51,490 Apre sa, 866 00:40:51,490 --> 00:40:53,470 Koulye a, sa ki sou drapo a franse? 867 00:40:53,470 --> 00:40:58,930 Ak yon ti kras kèk sòt de fè egzèsis mantal, ki drapo 868 00:40:58,930 --> 00:41:01,040 ka konprese plis sou ki gen kapasite? 869 00:41:01,040 --> 00:41:05,720 Drapo Alman an oswa franse a drapo, si nou pran sa ki apwoche? 870 00:41:05,720 --> 00:41:08,490 Drapo Alman an, paske gen nan plis orizontal èkse. 871 00:41:08,490 --> 00:41:12,190 Apre sa, pa konsepsyon, anpil dosye grafik fòma tout bon travay liy kòm eskanè 872 00:41:12,190 --> 00:41:12,830 orizontal. 873 00:41:12,830 --> 00:41:14,674 Yo te kapab travay vètikal, jis limanite 874 00:41:14,674 --> 00:41:17,090 deside ane de sa ke nou pral jeneralman panse de bagay sa yo ranje 875 00:41:17,090 --> 00:41:18,880 pa ranje olye pou yo kolòn pa kolòn. 876 00:41:18,880 --> 00:41:20,820 Se konsa, tout bon si ou te fè yon gade nan dosye a 877 00:41:20,820 --> 00:41:24,670 gwosè nan yon drapo Alman yo ak yon franse drapo, toutotan rezolisyon an se 878 00:41:24,670 --> 00:41:27,530 menm, lajè a nan menm ak wotè, yon sèl sa a 879 00:41:27,530 --> 00:41:31,580 isit la a pwal pi gwo, paske ou gen repete tèt ou twa fwa. 880 00:41:31,580 --> 00:41:35,570 Ou gen presize ble, repete tèt ou, blan, repete tèt ou, wouj, 881 00:41:35,570 --> 00:41:36,740 repete tèt ou. 882 00:41:36,740 --> 00:41:39,000 Ou pa ka jis ale tout wout la nan bò dwat la. 883 00:41:39,000 --> 00:41:41,200 Apre sa, kòm yon sou kote, fè klè konpresyon nan 884 00:41:41,200 --> 00:41:43,910 se toupatou, si sa yo, se kat ankadreman ki sòti nan yon video-- ou 885 00:41:43,910 --> 00:41:45,890 ta ka sonje ke yon fim oswa videyo se jeneralman 886 00:41:45,890 --> 00:41:47,286 tankou 29 oswa 30 ankadreman pou chak dezyèm fwa. 887 00:41:47,286 --> 00:41:50,410 Se tankou yon liv baskile ti kras kote ou jis wè imaj, imaj, imaj, imaj, 888 00:41:50,410 --> 00:41:54,410 imaj jis super vit pou li sanble aktè yo sou ekran an ap deplase. 889 00:41:54,410 --> 00:41:57,130 Isit la nan yon myèl Bumble sou tèt yon pakèt moun sou flè. 890 00:41:57,130 --> 00:41:59,790 Epi menm si li ta kapab kalite difisil yo wè nan premye gade, 891 00:41:59,790 --> 00:42:04,020 bagay la sèlman k ap deplase nan sa a fim se myèl la. 892 00:42:04,020 --> 00:42:06,880 >> Ki sa ki se bèbè sou estoke videyo dekonprese? 893 00:42:06,880 --> 00:42:11,420 Li nan kalite yon fatra nan magazen videyo ke kat imaj prèske idantik ki 894 00:42:11,420 --> 00:42:13,670 diferan sèlman tèl degre ke kote myèl la se. 895 00:42:13,670 --> 00:42:16,280 Ou ka jete pi nan enfòmasyon ki 896 00:42:16,280 --> 00:42:20,190 epi sonje sèlman, pou egzanp, ankadreman an premye ak dènye ankadreman an, 897 00:42:20,190 --> 00:42:22,180 ankadreman kle si ou te janm tande pawòl la, 898 00:42:22,180 --> 00:42:24,337 ak jis magazen an nan mitan kote myèl la se. 899 00:42:24,337 --> 00:42:26,170 Apre sa, ou pa bezwen magazen tout nan woz a, 900 00:42:26,170 --> 00:42:28,330 ak ble a, ak nan valè vèt kòm byen. 901 00:42:28,330 --> 00:42:31,200 Se konsa, sa a se senpleman di ke konpresyon se toupatou. 902 00:42:31,200 --> 00:42:34,900 Li se yon teknik nou itilize souvan oswa pran pou yo akòde jou sa yo. 903 00:42:34,900 --> 00:42:38,750 >> Men, ki jan ou konpresyon tèks? 904 00:42:38,750 --> 00:42:40,450 Ki jan ou fè ale sou konprime tèks? 905 00:42:40,450 --> 00:42:45,410 Oke, chak nan karaktè yo ki nan Ascii se youn multiple, oswa uit miyèt moso. 906 00:42:45,410 --> 00:42:47,360 Epi sa a, kalite bèbè, dwa? 907 00:42:47,360 --> 00:42:51,160 Paske pwobableman ou tape Yon ak E ak mwen ak O ak U yon anpil 908 00:42:51,160 --> 00:42:55,270 pi souvan pase tankou W oswa Q oswa Z, depann sou lang lan nan ki 909 00:42:55,270 --> 00:42:56,610 w ap ekri sètènman. 910 00:42:56,610 --> 00:42:59,600 Se konsa, poukisa yo nou lè l sèvi avèk uit Bits pou chak lèt, 911 00:42:59,600 --> 00:43:02,040 ki gen ladan pi piti a lèt popilè, dwa? 912 00:43:02,040 --> 00:43:05,300 Poukisa nou pa sèvi ak mwens Bits pou lèt yo super popilè, 913 00:43:05,300 --> 00:43:07,760 tankou E, bagay sa yo ou devine premye nan Rou nan Fortune, 914 00:43:07,760 --> 00:43:10,450 epi sèvi ak plis Bits pou lèt yo mwens popilè? 915 00:43:10,450 --> 00:43:10,950 Poukisa? 916 00:43:10,950 --> 00:43:13,130 Paske nou ap jis ale nan sèvi ak yo mwens souvan. 917 00:43:13,130 --> 00:43:15,838 >> Oke, li sanble ke gen gen te tantativ te fè nan fè sa. 918 00:43:15,838 --> 00:43:18,630 Men, si ou sonje soti nan klas yo lekòl la oswa lekòl segondè, Morse kòd. 919 00:43:18,630 --> 00:43:20,400 Morse Kòd gen pwen ak tirè ki ka 920 00:43:20,400 --> 00:43:24,270 transmèt sou yon fil kòm son oswa siyal nan kèk sòt. 921 00:43:24,270 --> 00:43:25,930 Men, Morse kòd se yon pwòp super. 922 00:43:25,930 --> 00:43:29,010 Li nan kalite yon sistèm binè nan ke ou gen pwen oswa tirè. 923 00:43:29,010 --> 00:43:30,977 Men, si ou wè, pou egzanp, de pwen. 924 00:43:30,977 --> 00:43:33,810 Oswa si ou panse tounen nan operatè a ki ale tankou BEEP, BEEP, BEEP, 925 00:43:33,810 --> 00:43:36,760 BEEP, frape yon ti kras deklanche ki transmèt yon siyal, 926 00:43:36,760 --> 00:43:40,360 si ou, moun k ap resevwa a, resevwa de pwen, ki sa mesaj ou resevwa? 927 00:43:40,360 --> 00:43:43,490 Konplètman abitrè. 928 00:43:43,490 --> 00:43:44,450 >> Mwen? 929 00:43:44,450 --> 00:43:45,060 Mwen? 930 00:43:45,060 --> 00:43:47,500 Oswa sa ki sou- oswa mwen? 931 00:43:47,500 --> 00:43:49,570 Petèt li te jis de dwat E la? 932 00:43:49,570 --> 00:43:52,480 Se konsa, gen nan pwoblèm sa a a decodability ak Morse 933 00:43:52,480 --> 00:43:54,890 Kòd, annakò ak sa sof si nan moun voye ou mesaj la 934 00:43:54,890 --> 00:43:59,510 aktyèlman poz pou ou kapab sòt nan wè oswa tande twou vid ki genyen ki genyen ant lèt, 935 00:43:59,510 --> 00:44:02,990 li nan pa ase jis yo voye yon kouran nan zewo ak moun yo, 936 00:44:02,990 --> 00:44:05,610 oswa pwen ak tirè, paske gen nan anbigwite. 937 00:44:05,610 --> 00:44:08,640 E se yon sèl dot, kidonk si w wè de pwen oswa tande de pwen, 938 00:44:08,640 --> 00:44:11,254 petèt li nan de E la oswa petèt li nan youn I. 939 00:44:11,254 --> 00:44:13,670 Se konsa, nou bezwen yon sistèm ki nan yon ti kras pi plis entelijan pase sa. 940 00:44:13,670 --> 00:44:16,851 Se konsa, yon nonm yo rele Huffman ane Anons sa pibliye depi te vini ak egzakteman sa a. 941 00:44:16,851 --> 00:44:18,600 Se konsa, nou ap jis pral pran ti koutje sou rapid yon 942 00:44:18,600 --> 00:44:20,114 nan ki jan pyebwa yo konvnabl nan sa a. 943 00:44:20,114 --> 00:44:22,530 Sipoze ke sa a se kèk mesaj estipid ou vle voye, 944 00:44:22,530 --> 00:44:26,342 ki konpoze de jis A, B, C a D's ak E la, men gen nan yon anpil nan èkse isit la. 945 00:44:26,342 --> 00:44:27,550 Li pa nan vle di yo dwe lang angle. 946 00:44:27,550 --> 00:44:28,341 Li pa nan chiffres. 947 00:44:28,341 --> 00:44:30,540 Se jis nan yon mesaj estipid avèk anpil repetisyon. 948 00:44:30,540 --> 00:44:34,010 Se konsa, si ou aktyèlman konte soti tout nan Yon a, B a, C a, D's, ak E la, isit la nan 949 00:44:34,010 --> 00:44:34,890 frekans lan. 950 00:44:34,890 --> 00:44:37,800 20% nan lèt yo se Yon a, 45% nan lèt yo 951 00:44:37,800 --> 00:44:39,660 se E la, ak twa lòt frekans. 952 00:44:39,660 --> 00:44:41,960 Nou konte 'kanpe manyèlman ak jis te fè matematik la. 953 00:44:41,960 --> 00:44:44,579 >> Se konsa, li sanble ke Huffman, gen kèk tan de sa, 954 00:44:44,579 --> 00:44:46,620 reyalize ke, ou konnen ki sa, si mwen kòmanse bilding 955 00:44:46,620 --> 00:44:51,172 yon pye bwa, oswa forè nan pye bwa, si ou vle, jan sa a, mwen ka fè bagay sa yo. 956 00:44:51,172 --> 00:44:53,880 Mwen pral bay yon ne nan chak nan lèt yo ke mwen pran swen sou 957 00:44:53,880 --> 00:44:55,530 ak mwen pral nan magazen andedan nan ki ne 958 00:44:55,530 --> 00:44:58,610 fwekans yo kòm yon pwen k ap flote valè, oswa ou ta ka sèvi ak li yon N, tou, 959 00:44:58,610 --> 00:45:00,210 men nou pwal jis itilize yon flote isit la. 960 00:45:00,210 --> 00:45:03,100 Apre sa, algorithm a ki li te pwopoze se ke ou 961 00:45:03,100 --> 00:45:07,210 pran forè sa a nan yon sèl ne pye bwa, pye bwa se konsa super ti bout tan, 962 00:45:07,210 --> 00:45:11,920 epi ou kòmanse konekte yo ak gwoup nouvo, nouvo paran yo, si ou pral. 963 00:45:11,920 --> 00:45:16,150 Epi ou fè sa pa chwazi nan de pi piti frekans nan yon tan. 964 00:45:16,150 --> 00:45:18,110 Se konsa, mwen te pran 10% ak 10%. 965 00:45:18,110 --> 00:45:19,090 Mwen kreye yon nouvo ne. 966 00:45:19,090 --> 00:45:20,910 Apre sa, mwen rele ne nan nouvo 20%. 967 00:45:20,910 --> 00:45:22,750 >> Ki de nœuds mwen konbine apre a? 968 00:45:22,750 --> 00:45:23,810 Li se yon ti kras Limit. 969 00:45:23,810 --> 00:45:26,643 Se konsa, gen nan kèk ka kwen nan konsidere, men yo kenbe bagay sa yo bèl, 970 00:45:26,643 --> 00:45:29,300 Mwen pral chwazi 20% - Mwen kounye a inyore timoun yo. 971 00:45:29,300 --> 00:45:33,640 Mwen pral chwazi 20% ak 15% epi trase de nouvo bor. 972 00:45:33,640 --> 00:45:35,624 Epi, koulye a ki de nœuds Mwen lojikman konbine? 973 00:45:35,624 --> 00:45:38,540 Ignore tout timoun yo yo, tout pitit pitit, jis gade nan rasin yo 974 00:45:38,540 --> 00:45:39,070 kounye a. 975 00:45:39,070 --> 00:45:42,220 Ki de nœuds mwen mare ansanm? 976 00:45:42,220 --> 00:45:44,530 Point de ak 0.35. 977 00:45:44,530 --> 00:45:45,890 Se konsa, kite m 'fè de nouvo bor. 978 00:45:45,890 --> 00:45:47,570 Lè sa a, mwen te sèlman te resevwa yon sèl kite. 979 00:45:47,570 --> 00:45:48,650 Se konsa, isit la nan yon pyebwa. 980 00:45:48,650 --> 00:45:51,160 Apre sa, li a te trase fè espre yo gade kalite bèl, 981 00:45:51,160 --> 00:45:55,870 men remake ke bor yo gen tou yo te ki make zewo ak yon sèl. 982 00:45:55,870 --> 00:45:59,510 Se konsa, tout nan bor yo kite yo zewo abitrèman, men toujou. 983 00:45:59,510 --> 00:46:01,170 Tout bor yo dwa yo se yo menm. 984 00:46:01,170 --> 00:46:05,070 >> Se konsa, sa ki Hoffman pwopoze se, se si ou vle reprezante yon B, 985 00:46:05,070 --> 00:46:10,080 olye ke reprezante ki kantite 66 kòm yon ASCII ki se uit Bits antye, 986 00:46:10,080 --> 00:46:13,360 ou konnen ki sa, jis magazen modèl la zewo, zewo, zewo, 987 00:46:13,360 --> 00:46:17,030 zewo, paske sa a, se chemen an soti nan pye bwa mwen, pye bwa Mesye Huffman a, 988 00:46:17,030 --> 00:46:18,600 fèy la soti nan rasin lan. 989 00:46:18,600 --> 00:46:20,970 Si ou vle nan magazen yon E, pa kontra, pa fè sa 990 00:46:20,970 --> 00:46:26,290 voye uit Bits ki reprezante yon E. Olye de sa, voye sa modèl nan Bits? 991 00:46:26,290 --> 00:46:26,890 Yon. 992 00:46:26,890 --> 00:46:30,410 Ak sa ki nan bèl sou sa a se ki E se lèt la ki pi popilè, 993 00:46:30,410 --> 00:46:32,340 ak w ap itilize a pi kout kòd pou li. 994 00:46:32,340 --> 00:46:34,090 Pwochen Ki pi popilè a lèt sanble li 995 00:46:34,090 --> 00:46:37,380 te A. Se konsa, ki jan anpil Bits li te pwopoze lè l sèvi avèk pou sa? 996 00:46:37,380 --> 00:46:38,270 Zewo, yon sèl. 997 00:46:38,270 --> 00:46:41,060 >> Epi paske li nan aplike kòm pye bwa sa a, pou kounye a 998 00:46:41,060 --> 00:46:43,350 kite m 'ladann gen nan pa gen okenn anbigwite tankou nan Morse 999 00:46:43,350 --> 00:46:46,090 Kòd, paske tout nan la lèt ou pran swen sou 1000 00:46:46,090 --> 00:46:48,780 se nan fen bor sa yo. 1001 00:46:48,780 --> 00:46:50,580 Se konsa, sa a, se sèlman yon sèl aplikasyon nan yon pye bwa. 1002 00:46:50,580 --> 00:46:52,538 Sa a is-- epi mwen pral balanse men m 'nan sa a ki jan ou 1003 00:46:52,538 --> 00:46:55,570 ta ka aplike sa a kòm yon estrikti C. 1004 00:46:55,570 --> 00:46:58,260 Nou jis bezwen konbine yon senbòl, tankou yon Char, 1005 00:46:58,260 --> 00:46:59,910 ak frekans lan nan kite la ak dwa. 1006 00:46:59,910 --> 00:47:02,510 Men, se pou pou yo gade nan de egzanp final ki ou pral 1007 00:47:02,510 --> 00:47:06,070 jwenn byen abitye ak apre egzamen zewo nan pwoblèm mete senk. 1008 00:47:06,070 --> 00:47:09,210 >> Se konsa, gen estrikti nan done li te ye tankou yon tab regle. 1009 00:47:09,210 --> 00:47:12,247 Apre sa, yon tab regle se kalite fre nan ke li gen bokit. 1010 00:47:12,247 --> 00:47:14,830 Apre sa, sipoze gen nan kat bokit isit la, jis kat espas vid. 1011 00:47:14,830 --> 00:47:20,830 Isit la nan yon pil kat la kat, ak isit la se klib, Spade, klib, Diamonds, klib, 1012 00:47:20,830 --> 00:47:25,960 Diamonds, klib, Diamonds, clubs-- kidonk sa a se o aza nan. 1013 00:47:25,960 --> 00:47:30,330 Kè, se konsa mwen hearts-- bucketizing tout nan entrain yo isit la. 1014 00:47:30,330 --> 00:47:32,430 Ak yon bezwen tab regle fè yon gade nan opinyon ou a, 1015 00:47:32,430 --> 00:47:34,850 ak Lè sa a mete l 'nan yon sèten mete ki baze sou sa ou wè. 1016 00:47:34,850 --> 00:47:35,600 Li nan yon algorithm. 1017 00:47:35,600 --> 00:47:37,980 Apre sa, mwen te lè l sèvi avèk yon super senp algorithm vizyèl. 1018 00:47:37,980 --> 00:47:40,030 Pati nan pi di nan sa ki te sonje sa foto yo te ye. 1019 00:47:40,030 --> 00:47:41,590 Lè sa a, gen nan kat bagay total. 1020 00:47:41,590 --> 00:47:45,440 >> Koulye a, pil yo te ap grandi, ki se yon bagay konsepsyon ekspre isit la. 1021 00:47:45,440 --> 00:47:46,540 Men, ki lòt bagay mwen ta ka fè? 1022 00:47:46,540 --> 00:47:49,080 Se konsa, aktyèlman isit la nou gen yon pakèt moun sou liv egzamen lekòl fin vye granmoun. 1023 00:47:49,080 --> 00:47:51,240 Sipoze ke yon pakèt moun sou elèv yo non yo sou isit la. 1024 00:47:51,240 --> 00:47:52,570 Isit la nan yon tab regle pi gran. 1025 00:47:52,570 --> 00:47:54,867 Olye de sa nan kat bokit, Mwen te, kite a di 26. 1026 00:47:54,867 --> 00:47:57,950 Apre sa, nou pa t 'vle ale prete 26 bagay soti an deyò de [? Annenberg?], Se konsa 1027 00:47:57,950 --> 00:48:00,289 isit la nan senk ki reprezante A jiska Z. Men, si mwen 1028 00:48:00,289 --> 00:48:03,580 wè yon elèv ki gen non kòmanse ak A, Mwen pral mete l 'osinon egzamen l' la. 1029 00:48:03,580 --> 00:48:08,850 Si yon moun kòmanse ak C, lòt bò a, A-- aktyèlman, pa t 'vle fè sa. 1030 00:48:08,850 --> 00:48:10,060 B ale sou isit la. 1031 00:48:10,060 --> 00:48:13,390 Se konsa, mwen te gen A ak B ak C. Epi kounye a isit la nan yon lòt Yon elèv. 1032 00:48:13,390 --> 00:48:16,212 Men, si sa a tab regle se aplike ak yon etalaj, 1033 00:48:16,212 --> 00:48:17,920 Mwen kalite vise nan pwen sa a, dwa? 1034 00:48:17,920 --> 00:48:19,510 Mwen kalite bezwen mete yon kote sa a. 1035 00:48:19,510 --> 00:48:24,380 >> Se konsa, yon fason mwen kapab rezoud sa a se, tout dwa, A se okipe, B se okipe, C se ki okipe yo. 1036 00:48:24,380 --> 00:48:28,880 Mwen pral mete l 'nan D. Se konsa, nan premye, mwen gen o aza aksè enstantane 1037 00:48:28,880 --> 00:48:31,064 nan chak nan bokit yo pou elèv yo. 1038 00:48:31,064 --> 00:48:33,230 Men koulye a, li la kalite dekonsantre nan yon bagay lineyè, 1039 00:48:33,230 --> 00:48:36,750 paske si mwen vle pou fè rechèch pou yon moun Non ki gen kòmanse ak A, mwen tcheke isit la. 1040 00:48:36,750 --> 00:48:38,854 Men, si sa a se pa A elèv M 'ap chache, 1041 00:48:38,854 --> 00:48:41,520 Mwen kalite te kòmanse tcheke bokit yo, paske sa m 'te 1042 00:48:41,520 --> 00:48:44,530 te sòt de linear pwofonde estrikti nan done. 1043 00:48:44,530 --> 00:48:47,710 Yon fason estipid nan di jis gade la pou premye ouvèti a disponib, 1044 00:48:47,710 --> 00:48:51,850 , li mete kòm yon plan B, se konsa pale, oswa plan D nan ka sa a, valè a 1045 00:48:51,850 --> 00:48:53,340 nan ki kote pito. 1046 00:48:53,340 --> 00:48:56,470 Sa a se jis se konsa ke si ou te te resevwa 26 kote ak gen okenn elèv yo 1047 00:48:56,470 --> 00:49:00,600 ak Q a non oswa Z, oswa yon bagay tankou ki, omwen w ap itilize espas ki la. 1048 00:49:00,600 --> 00:49:03,140 >> Men, nou te deja wè plis solisyon entelijan isit la, dwa? 1049 00:49:03,140 --> 00:49:04,870 Ki sa ou ta fè olye pou si ou gen yon kolizyon? 1050 00:49:04,870 --> 00:49:06,670 Si de moun ki gen Non Yon a, sa ki ta 1051 00:49:06,670 --> 00:49:09,160 yo te yon pi plis pi entelijan oswa solisyon entwisyon pase jis 1052 00:49:09,160 --> 00:49:12,840 mete yon kote D se ta sipoze ta dwe ye? 1053 00:49:12,840 --> 00:49:14,810 Poukisa nou pa mwen jis ale deyò [? Annenberg?], 1054 00:49:14,810 --> 00:49:19,960 tankou malok, yon lòt ne, mete l ' isit la, ak Lè sa a mete sa Yon elèv isit la. 1055 00:49:19,960 --> 00:49:22,120 Se konsa, ke mwen esansyèlman gen kèk kalite yon etalaj, 1056 00:49:22,120 --> 00:49:25,590 oswa petèt plis chik kòm nou ap kòmanse wè yon lis lye. 1057 00:49:25,590 --> 00:49:29,520 >> Se konsa, yon tab regle se yon estrikti ki ta ka gade jis tankou sa a, 1058 00:49:29,520 --> 00:49:33,900 men plis malen, ou yon bagay yo rele Anchènman ki apa a, annakò ak sa yon tab regle 1059 00:49:33,900 --> 00:49:38,340 byen tou senpleman se yon etalaj, yo chak nan ki gen eleman se pa yon nimewo, 1060 00:49:38,340 --> 00:49:40,470 se tèt li yon lis lye. 1061 00:49:40,470 --> 00:49:45,080 Se konsa, ke ou jwenn aksè Super vit n ap deside ki kote yo Hash valè ou a. 1062 00:49:45,080 --> 00:49:48,059 Anpil tankou ak egzanp lan kat, Mwen te fè desizyon super rapid. 1063 00:49:48,059 --> 00:49:49,600 Kè ale isit la, Diamonds ale isit la. 1064 00:49:49,600 --> 00:49:52,180 Menm isit la, Yon ale isit la, D ale isit la, B ale isit la. 1065 00:49:52,180 --> 00:49:55,740 Se konsa, Super vit gade-ups, epi si ou rive kouri antre nan yon ka 1066 00:49:55,740 --> 00:49:59,429 kote ou te gen kolizyon, de moun ki gen menm non yo, Lè sa a, byen 1067 00:49:59,429 --> 00:50:00,970 ou jis kòmanse ki lye ak yo ansanm. 1068 00:50:00,970 --> 00:50:03,900 E petèt ou kenbe yo Ranje par, petèt ou pa fè sa. 1069 00:50:03,900 --> 00:50:05,900 Men, nan omwen kounye a nou gen dynamism lan. 1070 00:50:05,900 --> 00:50:10,250 Se konsa, sou men nan yon sèl nou gen Super vit tan konstan, ak kalite nan tan lineyè 1071 00:50:10,250 --> 00:50:14,110 patisipe si sa yo bay lis lye kòmanse yo ka resevwa yon ti kras long. 1072 00:50:14,110 --> 00:50:16,880 >> Se konsa, sa a kalite yon komik, jiki blag ane de sa. 1073 00:50:16,880 --> 00:50:19,590 Nan CS50 Hack-yon-thon nan, lè elèv tcheke nan ti, 1074 00:50:19,590 --> 00:50:22,040 kèk TF oswa CA chak ane panse li nan komik mete monte 1075 00:50:22,040 --> 00:50:27,772 yon siy tankou sa a, kote li jis vle di si non ou kòmanse ak yon A, 1076 00:50:27,772 --> 00:50:28,870 al fè wout sa a. 1077 00:50:28,870 --> 00:50:31,110 Si non w lan pi vit ak yon B, ale sa a men OK, 1078 00:50:31,110 --> 00:50:33,290 li nan komik petèt pita nan semès la. 1079 00:50:33,290 --> 00:50:36,420 Men, gen nan yon lòt fason pou fè sa, tou. 1080 00:50:36,420 --> 00:50:37,410 Tounen vin jwenn sa. 1081 00:50:37,410 --> 00:50:38,600 >> Se konsa, gen nan estrikti sa a. 1082 00:50:38,600 --> 00:50:40,420 Lè sa a se dènye nou an estrikti pou jodi a, 1083 00:50:40,420 --> 00:50:42,400 ki se yon bagay yo rele yon trye. 1084 00:50:42,400 --> 00:50:47,140 T-R-I-E, ki pou kèk rezon se kout pou Rekipere, men sa yo rele trye. 1085 00:50:47,140 --> 00:50:51,389 Se konsa, yon trye se yon lòt enteresan amalgam de yon anpil nan lide sa yo. 1086 00:50:51,389 --> 00:50:52,930 Li se yon pye bwa, ki nou te wè anvan. 1087 00:50:52,930 --> 00:50:54,180 Li pa yon pye bwa rechèch binè. 1088 00:50:54,180 --> 00:50:58,410 Li se yon pye bwa ak nenpòt ki kantite timoun yo, men chak nan timoun yo nan yon trye 1089 00:50:58,410 --> 00:51:00,090 se yon etalaj. 1090 00:51:00,090 --> 00:51:04,790 Yon etalaj de gwosè, di, 26 oswa petèt 27 si ou vle sipòte non hyphenated 1091 00:51:04,790 --> 00:51:06,790 oswa apostrof nan non moun nan. 1092 00:51:06,790 --> 00:51:08,280 >> Se konsa, sa a se yon estrikti done. 1093 00:51:08,280 --> 00:51:10,290 Men, si ou gade nan tèt jouk anba, tankou si ou 1094 00:51:10,290 --> 00:51:13,710 gade nan ne an tèt la, M, se montre nan bagay la leftmost a, 1095 00:51:13,710 --> 00:51:17,665 ki se Lè sa a, A, X, W, E, L, L. Sa a se jis yon estrikti done ki abitrèman 1096 00:51:17,665 --> 00:51:19,120 se estoke non moun nan. 1097 00:51:19,120 --> 00:51:25,720 Apre sa, Maxwell se ki estoke pa jis yo yon chemen nan etalaj nan etalaj nan etalaj. 1098 00:51:25,720 --> 00:51:30,050 Men, sa ki nan etonan sou yon trye se sa, Lè nou konsidere ke yon lis lye e menm 1099 00:51:30,050 --> 00:51:34,520 yon etalaj, pi bon an nou te janm vinn se tan lineyè oswa logaritmik tan kap 1100 00:51:34,520 --> 00:51:35,600 yon moun yo. 1101 00:51:35,600 --> 00:51:40,530 Nan ka sa estrikti done nan yon trye, si estrikti done mwen an gen yon non nan li 1102 00:51:40,530 --> 00:51:43,720 ak M 'ap chache Maxwell, mwen ale nan jwenn li trè byen vit. 1103 00:51:43,720 --> 00:51:47,910 Mwen jis gade pou M-A-X-W-E-L-L. Si estrikti sa a done, pa kontra, 1104 00:51:47,910 --> 00:51:51,830 si N se yon milyon dola, si gen nan yon milyon dola non nan sa a estrikti done, 1105 00:51:51,830 --> 00:51:57,100 Maxwell se toujou pral fè dekouvet apre jis M-A-X-W-E-L-L 1106 00:51:57,100 --> 00:51:58,090 etap. 1107 00:51:58,090 --> 00:52:01,276 Apre sa, David-- D-A-V-mwen-D etap. 1108 00:52:01,276 --> 00:52:03,400 Nan lòt mo, pa bati yon estrikti done sa a, se 1109 00:52:03,400 --> 00:52:07,240 te resevwa tout nan ranje sa yo, tout nan yo ki tèt yo sipòte aksè o aza, 1110 00:52:07,240 --> 00:52:11,090 Mwen ka kòmanse leve je l 'moun nan non lè l sèvi avèk yon kantite tan sa a, se 1111 00:52:11,090 --> 00:52:14,340 pwopòsyonèl pa nimewo a de bagay sa yo nan estrikti a done, 1112 00:52:14,340 --> 00:52:16,330 tankou yon milyon dola non ki egziste deja. 1113 00:52:16,330 --> 00:52:20,135 Kantite lajan an nan tan li pran m 'nan jwenn M-A-X-W-E-L-L nan sa a estrikti done se 1114 00:52:20,135 --> 00:52:22,260 pwopòsyonèl pa nan gwosè nan estrikti a done, 1115 00:52:22,260 --> 00:52:25,930 men yo longè a nan non yo. 1116 00:52:25,930 --> 00:52:28,440 Apre sa, pli reyèlman nan non nou ap leve je l ' 1117 00:52:28,440 --> 00:52:29,970 pa janm pral fè fou lontan. 1118 00:52:29,970 --> 00:52:32,600 Petèt yon moun gen yon karaktè 10 non, 20 Non karaktè. 1119 00:52:32,600 --> 00:52:33,900 Li nan sètènman fini, dwa? 1120 00:52:33,900 --> 00:52:37,110 Gen yon moun sou Latè ki gen non ki pi long posib, 1121 00:52:37,110 --> 00:52:39,920 men sa non se yon konstan valè longè, dwa? 1122 00:52:39,920 --> 00:52:41,980 Li pa varye nan nenpòt ki sans. 1123 00:52:41,980 --> 00:52:45,090 Se konsa, nan fason sa a, nou te reyalize yon estrikti done 1124 00:52:45,090 --> 00:52:47,800 ki se tan konstan gade-up. 1125 00:52:47,800 --> 00:52:50,670 Li fè sa pran yon kantite etap depann sou longè a nan D 'a, 1126 00:52:50,670 --> 00:52:54,250 men se pa ki kantite Non nan estrikti a done. 1127 00:52:54,250 --> 00:52:58,700 Se konsa, si nou double nimewo a nan non ane kap vini an ki sòti nan yon milya dola nan de milya dola, 1128 00:52:58,700 --> 00:53:03,720 jwenn Maxwell se pral pran egzak menm kantite sèt etap 1129 00:53:03,720 --> 00:53:04,650 jwenn li. 1130 00:53:04,650 --> 00:53:08,810 Se konsa, nou sanble yo te reyalize grail apa pou Bondye nou an nan kouri tan. 1131 00:53:08,810 --> 00:53:10,860 >> Se konsa, yon koup la anons rapid. 1132 00:53:10,860 --> 00:53:11,850 Egzamen zewo a ap vini yo. 1133 00:53:11,850 --> 00:53:14,600 Plis sou ki sou sit entènèt kou a nan sou koup la pwochen nan jou. 1134 00:53:14,600 --> 00:53:17,120 Lendi a lecture-- li nan yon jou fèt isit la nan Harvard nan Lendi. 1135 00:53:17,120 --> 00:53:18,850 Li pa nan New Haven, se konsa nou ap pran klas la 1136 00:53:18,850 --> 00:53:20,310 nan New Haven pou konferans nan Lendi. 1137 00:53:20,310 --> 00:53:22,550 Tout yo pral filme-li ak difuze ap viv kòm dabitid, 1138 00:53:22,550 --> 00:53:24,900 men kite a fini jodi a ak yon 30 dezyèm clip 1139 00:53:24,900 --> 00:53:26,910 rele "Refleksyon Gwo twou san fon" pa Daven Farnham, ki 1140 00:53:26,910 --> 00:53:30,850 te enspire ane dènye pa Samdi "Refleksyon Gwo twou san fon" swa Live an 1141 00:53:30,850 --> 00:53:35,700 pa Jack Sou la men, ki ta dwe kounye a fè sans. 1142 00:53:35,700 --> 00:53:38,810 >> FIM: Epi, koulye a, "Gwo twou san fon Refleksyon "pa Daven Farnham. 1143 00:53:38,810 --> 00:53:42,100 1144 00:53:42,100 --> 00:53:42,870 Hash tab. 1145 00:53:42,870 --> 00:53:45,940 1146 00:53:45,940 --> 00:53:47,660 >> Oratè 1: Tout dwa, sa a, se li pou kounye a. 1147 00:53:47,660 --> 00:53:48,805 Nou pral wè ou an semèn pwochèn. 1148 00:53:48,805 --> 00:53:55,380 1149 00:53:55,380 --> 00:53:56,680 >> DOUG: Pou wè l 'nan aksyon. 1150 00:53:56,680 --> 00:53:58,304 Se konsa, kite a pran yon gade nan ki kounye a. 1151 00:53:58,304 --> 00:53:59,890 Se konsa, isit la, nou gen yon etalaj triye. 1152 00:53:59,890 --> 00:54:04,860 >> Ian: Doug, ou ka ale pi devan epi rekòmanse sa a pou sèlman yon sèl dezyèm lan, tanpri. 1153 00:54:04,860 --> 00:54:08,562 Tout dwa, kamera yo woule, se konsa aksyon chak fwa w ap pare, Doug, OK? 1154 00:54:08,562 --> 00:54:11,020 DOUG: Tout dwa, se konsa sa nou gen isit la se yon etalaj triye. 1155 00:54:11,020 --> 00:54:13,960 Apre sa, mwen te ki gen koulè pal tout nan eleman yo wouj yo endike ke li se, an reyalite, 1156 00:54:13,960 --> 00:54:14,460 triye. 1157 00:54:14,460 --> 00:54:17,960 Se konsa, sonje ke premye bagay la nou fè se nou sòt mwatye nan bò gòch nan etalaj la. 1158 00:54:17,960 --> 00:54:20,630 Apre sa, nou sòt dwat a mwatye nan etalaj la. 1159 00:54:20,630 --> 00:54:22,830 Epi ya-da, ya-da, ya-da, nou rantre yo ansanm. 1160 00:54:22,830 --> 00:54:24,520 Epi nou gen yon etalaj Ranje konplètman. 1161 00:54:24,520 --> 00:54:25,360 Se konsa, lè sa a jan rantre sòt travay. 1162 00:54:25,360 --> 00:54:27,109 >> Ian: Ola, ola, ola, koupe, koupe, koupe, koupe. 1163 00:54:27,109 --> 00:54:30,130 Doug, ou pa ka jis ya-da, ya-da, ya-da, fason ou nan sòt unifye. 1164 00:54:30,130 --> 00:54:31,970 >> DOUG: Mwen jis te fè. 1165 00:54:31,970 --> 00:54:32,832 Li nan amann. 1166 00:54:32,832 --> 00:54:33,540 Nou ap bon yo ale. 1167 00:54:33,540 --> 00:54:34,760 Se pou nou jis kenbe woule. 1168 00:54:34,760 --> 00:54:35,380 Se konsa, de tout fason, 1169 00:54:35,380 --> 00:54:37,800 >> Ian: Ou gen yo eksplike li plis konplètman pase sa. 1170 00:54:37,800 --> 00:54:39,999 Se jis pa ase. 1171 00:54:39,999 --> 00:54:41,790 DOUG: Ian, nou pa fè sa bezwen pou tounen nan yon sèl. 1172 00:54:41,790 --> 00:54:42,350 Li nan amann. 1173 00:54:42,350 --> 00:54:45,690 Se konsa, de tout fason, si nou kontinye ak merge-- Ian, nou ap nan mitan an nan tal filme. 1174 00:54:45,690 --> 00:54:46,612 >> Ian: Mwen konnen. 1175 00:54:46,612 --> 00:54:49,320 Epi nou pa kapab jis ya-da, ya-da, ya-da, atravè tout pwosesis la tout antye. 1176 00:54:49,320 --> 00:54:52,200 Ou gen yo eksplike ki jan nan de kote sa jwenn fizyone ansanm. 1177 00:54:52,200 --> 00:54:53,570 >> DOUG: Men, nou te deja eksplike ki jan sides-- nan de 1178 00:54:53,570 --> 00:54:55,321 >> Ian: Ou te jis montre yo yon etalaj unifye. 1179 00:54:55,321 --> 00:54:56,486 DOUG: Yo konnen pwosesis la. 1180 00:54:56,486 --> 00:54:57,172 Yo ap amann. 1181 00:54:57,172 --> 00:54:58,380 Nou te ale sou li dis fwa lè lè. 1182 00:54:58,380 --> 00:55:00,330 >> Ian: Ou jis sote dwat sou li. 1183 00:55:00,330 --> 00:55:03,360 Nou ap pral tounen nan yon sèl, ou pa kapab ou ya-da, ya-da sou li. 1184 00:55:03,360 --> 00:55:05,480 Tout dwa, tounen nan yon sèl. 1185 00:55:05,480 --> 00:55:07,833 >> DOUG: Mwen gen yo ale retounen lakay nan tout nan glisad yo? 1186 00:55:07,833 --> 00:55:08,332 Bondye mwen an. 1187 00:55:08,332 --> 00:55:11,008 1188 00:55:11,008 --> 00:55:13,004 Se tankou tan an sizyèm, Ian. 1189 00:55:13,004 --> 00:55:13,940 Li nan amann. 1190 00:55:13,940 --> 00:55:15,200 >> Ian: Tout dwat. 1191 00:55:15,200 --> 00:55:16,590 Ou pare? 1192 00:55:16,590 --> 00:55:17,400 Great. 1193 00:55:17,400 --> 00:55:18,950 Aksyon.