Oratè 1: Tout dwa, kidonk sa a se Sa a se CS50 nan fen semèn senk. Epi sonje ke dènye fwa nou te kòmanse gade nan done yo amateur estrikti ki te kòmanse yo rezoud pwoblèm, ki te kòmanse prezante pwoblèm nouvo, men kle a nan sa a te sòt nan nan anfile ke nou te kòmanse fè soti nan ne ne. Se konsa, sa nan kou se yon lis separeman lye. Ak nan separeman lye, Mwen vle di gen nan sèlman yon sèl fil ant chak nan sa yo nœuds. Vire soti ou ka fè amateur bagay sa yo tankou lis doubl lye kijan ou gen yon flèch ale nan toude direksyon, ki ka ede ak sèten efikasite. Men, sa a rezoud pwoblèm nan? Ki sa ki pwoblèm sa a t 'rezoud? Poukisa nou pran swen nan Lendi? Poukisa, nan teyori, t 'nou pran swen nan Lendi? Ki sa sa fè? ODYANS: Nou ka dynamique rdimansyonman li. Oratè 1: OK, se konsa nou kapab dynamique rdimansyonman li. Oke fè tou de nan nou. Se konsa, ou ka dynamique rdimansyonman sa a estrikti done, Lè nou konsidere ke yon etalaj, sonje, ou gen konnen yon priori konbyen lajan espas ou vle epi si ou bezwen yon ti kras plis espas, w ap kalite soti nan chans. Ou gen yo kreye yon antye nouvo etalaj. Ou gen pou avanse pou pi tout nan ou done ki sòti nan youn nan lòt la, evantyèlman libere etalaj la fin vye granmoun si ou kapab, ak Lè sa a kontinye. Ki jis santi l trè koute chè ak trè rezèvwa, ak tout bon li kapab. Men, sa a se pa tout bon. Nou peye yon pri, kisa ki te yon nan pri yo plis evidan nou peye lè l sèvi avèk yon lis lye? ODYANS: Nou gen yo sèvi ak espas doub pou chak kesyon. Oratè 1: Yeah, se konsa nou bezwen omwen de fwa lavalè espas. An reyalite, mwen reyalize nan foto sa a menm yon ti kras bay manti, paske sou CS50 IDE nan yon anpil nan modèn òdinatè, yon konsèy oswa yon adrès se pa nan reyalite kat bytes. Li trè souvan sa yo jou uit bytes, ki vle di anba a pi rektang gen nan reyalite yo se kalite de fwa tankou gwo kòm sa m 'te trase, ki vle di w ap itilize twa fwa kòm anpil espas jan nou ta ka gen otreman. Koulye a, an menm tan an, nou ap toujou pale bytes, dwa? Nou ap pa nesesèman pale megabit oswa jigokte, sof si done sa yo estrikti jwenn gwo. Se konsa, jodi a nou kòmanse yo konsidere ki jan nou ta ka eksplore done pi plis efikasite si nan reyalite done a vin pi gran. Men, kite a eseye canonicalize operasyon yo an premye ke ou ka fè sou sa yo kalite estrikti done. Se konsa, yon bagay tankou yon lye lis jeneralman sipòte operasyon renmen efase, Insert, ak rechèch. Ak sa ki mwen vle di pa sa? Sa jis vle di ke anjeneral, si moun ap itilize lis lye, yo oswa yon lòt moun te aplike fonksyon tankou Delete, insert, ak rechèch, kidonk, ou ka aktyèlman fè yon bagay itil ak estrikti nan done. Se konsa, kite a pran yon gade rapid nan ki jan nou ta ka aplike kèk kòd pou yon lis lye jan sa a. , Se konsa, sa a se jis kèk kòd C pa menm yon pwogram konplè ke mwen vrèman byen vit vide yo. Li pa sou entènèt nan distribisyon an Kòd, paske li pa pral aktyèlman kouri. Men, remake mwen te jis ak yon kòmantè te di, dot dot dot, gen nan yon bagay la, dot dot dot, yon bagay la. Li kite yo jis gade nan sa pati pyès sa yo juicy ye. Se konsa, sou liy twa, sonje ke sa a se kounye a nou pwopoze deklare yon ne dènye tan, youn nan moun ki objè rektangilè. Li te gen yon int ke nou pral rele N, men nou te kapab rele l 'anyen, ak Lè sa a yon etwal struct ne rele kap vini an. Epi jis yo dwe klè, ki dezyèm liy, sou liy sis, ki sa ki sa? Ki sa ki li fè pou nou? Paske li sètènman sanble plis skre pase varyab abityèl nou an. ODYANS: Li fè li deplase sou yon sèl. Oratè 1: Li fè li deplase sou yon sèl. Apre sa, yo dwe plis presi, li pral magazen adrès la a ne la ki nan vle di yo dwe Semantics akote l, dwa? Se konsa, li pa k ap pase yo nesesèman deplase anyen. Li nan jis ale nan magazen se yon valè, ki se pral fè adrès la nan kèk lòt ne, ak Se poutèt sa nou te di struct etwal ne, zetwal la indican yon konsèy oswa yon adrès. OK, se konsa kounye a si ou asime ke nou gen N sa a disponib nan nou, e kite yo asime ke yon lòt moun gen eleman yon pakèt antye nan nonm antye relatif nan yon lis lye. Epi sa lis lye se pwente nan pa kèk pwen yon varyab rele lis sa a, se te pase nan isit la kòm yon paramèt, ki jan mwen ale sou liy 14 mete ann aplikasyon rechèch? Nan lòt mo, si mwen mete ann aplikasyon fonksyon ki gen objektif nan lavi se pran yon int ak Lè sa a nan kòmanse nan yon lis lye, ki se yon konsèy nan lis la lye. Fè tankou premye, ki moun ki mwen panse ke David te volontè nou an nan Lendi, li te montre nan antye lye lis la, li a tankou si nou ap pase David nan kòm agiman nou an isit la. Ki jan nou ale sou Travelers lis sa a? Oke, li sanble ke menm si endikasyon yo se relativman nouvo kounye a ak nou, nou ka fè sa relativman kareman. Mwen pral ale pi devan epi deklare yon varyab tanporè ki pa konvansyon se jis ale yo dwe rele konsèy, oswa ptr, men ou ta ka rele li anyen ou vle. Apre sa, mwen pral inisyalize li nan kòmansman an nan lis la. Se konsa, ou ka kalite panse a sa a kòm mwen pwofesè a lòt jou a, kalite montre nan yon moun nan mitan moun nou an kòm volontè yo. Se konsa, mwen se yon varyab tanporè sa a, se jis montre nan menm bagay la ki nou an azar yo te rele volontè David te tou montre yo. Koulye a, pandan y ap konsèy se pa nil, paske sonje ki nil se kèk valè Sentinel espesyal demarcates nan nan fen lis la, Se konsa, pandan mwen pa montre nan la tè tankou volontè dènye nou an te, se pou yo ale pi devan ak fè sa ki annapre yo. Si pointer-- e kounye a, mwen kalite vle fè sa nou te fè ak elèv la structure-- si konsèy dot pwochen equals-- olye, si konsèy dot N egal egal a varyab la N, agiman sa a te pase a, Lè sa a, mwen vle ale pi devan epi di retounen vre. Mwen jwenn nimewo N andedan nan youn nan nœuds yo nan lis lye m 'yo. Men, dot la pa ap travay nan kontèks sa a, paske konsèy, ptr, se tout bon yon konsèy, yon adrès, nou aktyèlman kapab bèl itilize finalman yon moso nan sentaks ki kalite fait sans entwisyon ak aktyèlman sèvi ak yon flèch isit la, ki vle di ale nan ki adrès nonb antye relatif la gen nan. Se konsa, li trè menm jan an nan Lespri Bondye a operatè a dot, men paske konsèy se pa yon konsèy epi yo pa yon struct aktyèl tèt li, nou jis sèvi ak flèch la. Se konsa, si ne aktyèl la se mwen menm, nan varyab tanporè, kap montre nan se pa N, ki sa mwen vle fè? Oke, ak volontè imen mwen ke nou te isit la lòt jou a, si premye moun mwen an se pa yon sèl I vle, e petèt dezyèm moun nan se pa yon sèl la mwen vle, ak twazyèm lan, mwen bezwen kenbe fizikman deplase. Fè tankou ki jan mwen etap nan yon lis? Lè nou te gen yon etalaj, ou jis te fè tankou mwen plis plis. Men, nan ka sa a, li sifizan fè konsèy, vin, konsèy, kap vini an. Nan lòt mo, jaden nan pwochen te se menm jan ak tout men yo kite a ki volontè imen nou an nan Lendi te lè l sèvi avèk A ak pwen nan kèk lòt ne. Moun sa yo ki te vwazen pwochen yo. Se konsa, si mwen vle etap nan lis sa a, Mwen pa ka jis fè mwen plis plis ankò, Mwen olye pou te vle di Se mwen menm, konsèy, ki pral egal tou sa jaden an pwochen se, jaden an pwochen se, jaden an pwochen se, apre tout moun ki men kite ke nou te lonje dwèt sou sèn nan kèk valè ki vin apre. Men, si mwen jwenn nan ki iterasyon antye, epi finalman, mwen frape nil pa gen jwenn N ankò, mwen jis retounen fo. Se konsa, ankò, tout sa ki n ap fè isit la, tankou pou chak foto nan yon ti moman de sa, se kòmanse nan idantifye nan la kòmanse nan lis la prezimableman. Lè sa a, mwen tcheke, se valè a M 'ap chache egal a nèf? Si se konsa, mwen retounen vre ak mwen se fè. Si ou pa, mwen mete ajou men m ', AKA konsèy, A ak pwen nan kote flèch nan pwochen te a, epi Lè sa a, kote flèch la pwochen nan, ak pwochen an. Mwen tou senpleman mache nan sa a etalaj. Se konsa, ankò, ki moun ki gen sousi? Fè tankou ki sa ki sa a yon engredyan pou? Oke, sonje ke nou prezante nosyon de yon pil, ki se yon done abstrè tape tèl degre ke li nan pa yon bagay C, li nan pa yon bagay CS50, li nan yon lide abstrè, lide sa a nan anpile bagay sa yo sou tèt youn ak lòt ki ka aplike nan grap rezen diferan fason. Apre sa, yon fason nou pwopoze te la avèk yon etalaj, oswa avèk yon lis lye. Apre sa, li vire soti ke kanonikman, se yon chemine sipòte omwen de operasyon yo. Apre sa, mo sa yo Buzz yo pouse, yo pouse yon bagay sou chemine a, tankou yon nouvo plato nan la sal manje, oswa pòp, ki vle di yo retire topmost nan plato soti nan chemine a nan manje a sal, ak Lè sa a petèt kèk operasyon lòt kòm byen. Se konsa, kouman ta ka nou defini estrikti a ke nou ap kounye a rele yon pil? Bon, nou gen tout voulu la sentaks a jete nou yo nan C. M 'ap di, ban m 'yon definisyon di ki kalite yon struct andedan nan yon pil, Mwen pral di se yon etalaj, nan yon pakèt antye nan nimewo ak Lè sa a gwosè. Se konsa, nan lòt mo, si mwen vle aplike sa a nan kòd, kite m 'ale ak jis kalite trase ki sa sa a ap di. Se konsa, sa ap di, ban m 'yon estrikti ki nan te resevwa yon etalaj, epi mwen pa konnen ki sa kapasite se, li nan aparamman kèk konstan ke mwen te defini yon lòt kote, e ke sa a amann. Men, si li nan jis yon sèl, de, twa, kat, senk. Se konsa, kapasite se 5. Sa a eleman andedan nan m ' pral estrikti dwe rele nimewo. Lè sa a, mwen bezwen youn lòt varyab aparamman rele gwosè ke okòmansman mwen pral ladann se inisyalizèd a zewo. Si gen nan pa gen anyen nan chemine, gwosè a se zewo, ak li nan valè fatra nan chif yo. Mwen pa gen okenn lide sa ki nan nan gen jis ankò. Se konsa, si mwen vle pouse yon bagay sou chemine a, ta kwè mwen rele pouse nan fonksyon, ak M 'ap di pouse 50, tankou nimewo a 50, kote ta ou pwopoze Mwen trase l 'nan sa a etalaj? Genyen senk diferan repons posib. Ki kote ou vle pouse nimewo a 50? Si objektif la isit la, ankò, rele nan pouse fonksyon, pase nan yon agiman nan 50, kote mwen mete l '? Senk sa ki posib 20% chans a devine kòrèkteman. Wi? ODYANS: Byen lwen dwat. Oratè 1: Byen lwen dwat. Gen kounye a yon chans 25% a devine kòrèkteman. Se konsa, ki ta aktyèlman ap amann. Pa konvansyon, mwen pral di ak yon etalaj, nou ta jeneralman kòmanse nan bò gòch la, men nou te kapab sètènman kòmanse nan bò dwat la. Se konsa, beke a isit la ta dwe mwen se pwobableman pral fè desen l 'sou bò gòch la, jis tankou nan yon etalaj nòmal kote Mwen kòmanse ale gòch a dwat. Men, si ou ka baskile aritmetik a, amann. Li nan jis pa konvansyonèl yo. OK, mwen bezwen fè yon sèl plis chanjman menm si. Kounye a ke mwen te pouse yon bagay sou chemine a, sa ki nan pwochen? Tout dwa, mwen gen yo kantite gwosè a. Se pou m 'ale pi devan ak jis aktyalizasyon sa a, ki te zewo. Ak olye pou kounye a, mwen pral yo mete nan valè a yon sèl. Epi, koulye a ta kwè mwen pouse yon lòt Nimewo sou chemine a, tankou 51. Bon, mwen gen fè yon sèl plis chanjman, ki se jiska gwosè a de. Lè sa a, ta kwè mwen pouse yon sèl plis Nimewo sou chemine a tankou 61, koulye a, mwen bezwen mete ajou gwosè a yon sèl plis tan, epi pou yo jwenn valè a 3 kòm gwosè a. Epi, koulye a ta kwè mwen rele pòp. Koulye a, pòp, pa konvansyon, pa pran yon agiman. Avèk yon pil, tout la pwen nan metafò nan plato se ke ou pa gen diskresyon yo ale jwenn ki plato, tout sa ou kapab fè se pòp yon sèl nan topmost nan chemine a, jis paske. Sa a ki sa sa a estrikti done fè. Se konsa, pa ke lojik si mwen di pòp, sa ki vini an? Se konsa, 61. Se konsa, sa vrèman se òdinatè a pral fè nan memwa? Ki sa ki kòd m 'dwe fè? Ki sa ou ta pwopoze nou chanje sou ekran an? Ki sa ki ta chanje? Padon? Se konsa, nou debarase m de 61. Se konsa, mwen kapab definitivman fè sa. Apre sa, mwen ka debarase m de 61. Lè sa a, sa lòt chanjman bezwen yo rive? Kantite moun ki pwobableman gen pou tounen nan de. Se konsa, sa a, se amann. Men, rete tann yon, gwosè minit yon ti moman de sa te twa. Se pou nou jis fè yon chèk saniti rapid. Ki jan nou t 'konnen ke nou te vle debarase m de 61? Paske nou ap eklate. Se konsa, mwen gen sa a gwosè dezyèm pwopriyete. Tann yon minit, mwen se panse tounen nan semèn de lè nou te kòmanse pale sou ranje, kote sa a te kote zewo, sa a te kote yon sèl, sa a te kote de, sa a se kote twa, kat, li sanble nan relasyon ant gwosè ak eleman a ke mwen vle retire soti nan etalaj la parèt yo jis pou ki sa? Kantite moun ki mwens yon sèl. Se konsa, sa a, se ki jan moun kòm nou konnen 61 vini anvan. Ki jan nan òdinatè a ale nan konnen? Lè kòd ou a, kote ou pwobableman vle fè yon gwosè mwens, se konsa twa mwens se yon sèl de, e ke vle di nou vle debarase m de 61. Lè sa a, nou ka tout bon aktyalizasyon gwosè a pou ke gwosè kounye a ale soti nan twa a jis de. Apre sa, jis yo dwe pedant, mwen pral pwopoze ke mwen fè, dwa? Ou pwopoze entwitif kòrèkteman mwen ta dwe debarase m de 61. Men, gen pa mwen kalite sòt de vinn m de 61? Mwen te efektivman bliye ke li la aktyèlman la. Epi reflechi tounen nan pset4, si ou te li atik la sou forensics, PDF nan ke nou te ou nèg li, oswa ou pral li semèn sa a pou pset4. Sonje byen, sa a se aktyèlman konvnabl nan lide an antye nan forensics òdinatè. Ki sa ki yon òdinatè jeneralman fè se li jis bliye kote yon bagay se, men li pa ale nan ak renmen eseye grate li pase sou desizyon soti oswa moun Bits ak zewo ak moun yo oswa kèk lòt modèl o aza sof si ou tèt ou fè sa fè espre. Se konsa, entwisyon ou te dwat, se pou yo debarase m de 61. Men, an reyalite, nou pa bezwen deranje. Nou jis bezwen bliye ke li a gen pa chanje gwosè nou an. Koulye a, gen nan yon pwoblèm ak chemine sa a. Si m 'kenbe pouse bagay sou chemine a, sa ki nan evidamman pral rive nan jis yon kèk moman tan? Nou pral kouri soti nan espas. Ak sa ki nou fè? Nou ap kalite vise. Aplikasyon sa a pa kite nou rdimansyonman etalaj la, paske lè l sèvi avèk sentaks sa a, si ou panse tounen nan semèn de, yon fwa ou te deklare gwosè a nan yon etalaj, nou pa te wè yon mekanis ankò kote ou kapab chanje gwosè a nan etalaj la. Ak tout bon C pa gen ki karakteristik. Si w di m 'senk ba Nths, rele yo nimewo, sa a, se tout sa ou ap ale nan jwenn li. Se konsa, nou fè kounye a kòm nan Lendi, gen kapasite nan eksprime sa yo panse yon solisyon menm si, nou jis bezwen ajiste definisyon an nan chemine nou an pa yo dwe kèk etalaj difisil-kode, men jis nan magazen yon adrès. Koulye a, poukisa se sa a? Koulye a, nou jis gen yo dwe konfòtab ak lefèt ke lè pwogram mwen kouri, M 'ap prezimableman pral gen mande moun nan, konbyen nimewo ou vle nan magazen? Se konsa, D 'a te soti nan yon kote. Men, yon fwa mwen konnen ke nimewo, lè sa a mwen ka jis itilize sa fonksyone bay m 'yon ti moso nan memwa? Mwen ka itilize malok. Apre sa, mwen ka di nenpòt ki kantite bytes Mwen vle tounen pou Nths sa yo. Apre sa, tout mwen gen nan magazen an nimewo yo varyab isit la andedan nan struct sa a yo ta dwe ki sa? Ki sa ki aktyèlman ale nan la nimewo nan senaryo sa a? Yeah, yon konsèy ak pi gran an multiple nan ki ti moso nan memwa, oswa plis espesyalman, adrès la nan premye a nan tout sa yo bytes. Pa gen pwoblèm si li nan youn multiple oswa yon milya dola bytes, Mwen jis bezwen pran swen sou premye a. Paske sa garanti malok ak garanti sistèm opere m 'yo, se ke moso nan memwa mwen jwenn, li pral yo dwe vwazen. Gen pa k ap pase yo dwe twou vid ki genyen. Se konsa, si mwen te mande pou 50 bytes oswa 1,000 bytes, yo ap tout pral fè tounen nan tounen nan do. Se konsa, lontan ke mwen sonje ki jan gwo, ki jan lajan mwen te mande pou yo, tout mwen bezwen konnen se premye adrès la sa yo. Se konsa, kounye a nou gen kapasite la nan kòd. Kwake, li k ap pase yo pran nou plis tan yo ekri sa a leve, nou te ka kounye a aloue ke memwa pa jis estoke yon adrès diferan gen si nou vle yon pi gwo oswa menm yon moso ki pi piti nan memwa. Se konsa, isit la nan yon komès. Koulye a, nou jwenn dynamism. Nou toujou gen contiguousness mwen reklame. Paske malok pral ban nou yon moso vwazen nan memwa. Men, sa a se pral fè yon doulè nan kou a pou nou, pwogramè a, ki aktyèlman kode yo. Se jis plis travay. Nou bezwen Kòd analogue nan sa m 'te frape soti jis yon ti moman de sa. Trè pratik, men li ajoute konpleksite. Se konsa, tan pwomotè, pwogramè tan se yon lòt resous ankò ke nou ta ka bezwen yo ap depanse kèk tan yo ka resevwa karakteristik nouvo. Lè sa a, nan kou gen yon keu. Nou pa pral antre nan sa a youn nan anpil detay. Men, li la trè menm jan an nan Lespri Bondye. Mwen te kapab aplike yon keu, ak operasyon korespondan li yo, enqueue oswa dequeue, tankou ajoute oswa retire, li nan jis yon fason amateur nan di li, enqueue oswa dequeue, jan sa a. Mwen ka jis bay tèt mwen yon struct sa ankò gen etalaj yon PO lan, sa ankò te gen yon gwosè, men poukisa pou m kounye a bezwen nan kenbe tras nan devan an nan yon keu? Mwen pa t 'bezwen konnen devan nan chemine m 'yo. Oke, si mwen ankò pou yon queue-- kite yo jis difisil kode li tankou ke li gen tankou senk nonm antye relatif nan isit la ki kapab. Se konsa, sa a se zewo, yonn, de, twa, kat. Sa a se pral yo dwe rele nimewo ankò. Lè sa a y'a rele gwosè. Poukisa li pa ase gen gwosè jis? Oke, kite la pouse moun ki nimewo menm sou. Se konsa, mwen pushed-- mwen enqueued, oswa pouse. Koulye a, mwen pral enqueue 50, ak Lè sa a 51, ak Lè sa a 61, ak dot dot dot. Se konsa, sa a, se enqueue. Mwen enqueued 50, Lè sa a, 51, Lè sa a, 61. Epi sa sanble ki idantik nan yon chemine konsa byen lwen, eksepte mwen bezwen fè yon sèl chanjman. Mwen bezwen mete ajou sa a gwosè, se konsa mwen ale soti nan zewo rive youn nan de a twa kounye a. Kouman pou mwen dequeue? Ki sa ki k ap pase ak dequeue? Kimoun ki ta dwe vini nan lis sa a premye si li nan liy lan nan Apple magazen an? Se konsa, 50. Se konsa, li nan kalite Delice moman sa a. Lè nou konsidere ke dènye fwa li te super fasil yo jis fè yon gwosè mwens, Mwen jwenn nan fen a nan etalaj mwen efektivman kote nimewo yo ye a, li retire 61. Men, mwen pa vle retire 61. Mwen vle pran 50, ki moun ki te gen a 5:00 AM nan liy moute pou nan nouvo iPhone oswa etajèr. Se konsa, yo debarase m de 50, mwen pa ka jis fè sa, dwa? Mwen ka travèse soti 50. Men, nou jis di nou pa gen yo dwe tèlman nan dèyè tankou yo grate soti oswa ou kache done yo. Nou ka jis bliye kote li ye. Men, si mwen chanje gwosè m 'kounye a de, se enfòmasyon sa a ase konnen ki sa ki pwal sou nan keu mwen an? Pa vrèman. Fè tankou gwosè mwen an se de, men kote keu la kòmanse, espesyalman si mwen toujou gen moun ki nimewo menm nan memwa. 50, 51, 61. Se konsa, mwen bezwen sonje kounye a kote devan an se. Se konsa, jan mwen pwopoze moute a, nou pral gen sèlman rele Nyèm devan, ki gen premye ta dwe valè yo te ki sa? Zewo, jis nan konmansman an nan lis la. Men koulye a, nan adisyon a decrementing gwosè a, nou jis kantite devan an. Koulye a, isit la nan yon lòt pwoblèm. Se konsa, yon fwa mwen kenbe prale. Sipoze sa a se nimewo a nan tankou 121, 124, ak lè sa a, dammit, Mwen se soti nan espas. Men, rete tann yon minit, mwen pa se. Se konsa, nan pwen sa a nan istwa a, ta kwè ke gwosè a se youn, de, twa, kat, se konsa ta kwè se nan gwosè se kat, devan la se youn, se konsa 51 se nan devan an. Mwen vle mete yon lòt nimewo isit la, men, dammit, mwen soti nan espas. Men, mwen pa reyèlman, dwa? Ki kote mwen te kapab mete kèk plis valè, tankou 171? Yeah, mwen te kapab jis kalite tounen lòt bò a, dwa? Lè sa a, travèse soti 50 an, oswa jis recouvrir li ak 171. Men, si w ap mande poukisa nimewo nou an te tèlman o aza, sa yo yo souvan pran òdinatè kou syans nan Harvard apre CS50. Men, sa ki te yon optimize bon, paske kounye a mwen pa gaspiye espas. Mwen toujou gen sonje ki jan gwo bagay sa a se total. Li nan senk total. Paske mwen pa vle kòmanse ranplasan 51. Se konsa, kounye Se mwen menm ki toujou soti nan espas, se konsa menm pwoblèm nan tankou anvan. Men, ou ka wè ki jan kounye a nan kòd ou a, ou pwobableman gen yo ekri yon ti kras plis konpleksite fè ki rive. Lè an reyalite, ki sa operatè nan C pwobableman pèmèt ou maji fè sa sirkularite la? Yeah operatè a modulo, siyen an pousan. Se konsa, sa ki nan kalite fre sou yon keu, menm si nou kenbe desen ranje tankou sa yo tankou liy dwat, si ou kalite panse osijè de sa a kòm kourb alantou kòm yon sèk, lè sa a jis entwitif li kalite travay mantalman Mwen panse ke yon ti kras plis propr. Ou ta toujou gen aplike ke modèl mantal nan kòd. Se konsa, pa ki difisil, finalman, aplike, men nou toujou pèdi size-- a olye a, kapasite yo rdimansyonman, sof si nou fè sa. Nou gen yo debarase m de etalaj la, nou ranplase li ak yon konsèy sèl, ak Lè sa a yon kote nan kòd m 'mwen te gen yon rele sa fonksyone nan aktyèlman kreye etalaj la rele nimewo? Malok, oswa kèk menm jan an fonksyon, egzakteman. Nenpòt kesyon sou pil oswa ke moun kap kriye. Yeah? Bon kesyon. Ki sa ki modulo ou ta itilize isit la. Se konsa, jeneralman, lè w ap itilize mod, ou ta fè l ' ak gwosè a nan la done antye estrikti. Se konsa, yon bagay tankou senk oswa kapasite, si li a konstan, se pwobableman enplike nan sa. Men, jis fè modulo senk pwobableman se pa ase, paske nou bezwen konnen èske nou vlope toutotou isit la oswa isit la oswa isit la. Se konsa, ou ap pwobableman tou ale nan vle enplike gwosè a nan bagay la, oswa varyab la devan kòm byen. Se konsa, li jis sa a relativman ekspresyon aritmetik senp, men modulo ta dwe engredyan nan kle. Fim Se konsa, kout si ou pral. Yon animasyon ke kèk jan nan yon lòt inivèsite mete tèt yo ansanm ke nou te adapte pou diskisyon sa a. Sa enplike Jack aprann nan enfòmasyon sou ke moun kap kriye ak stats. FIM: Yon fwa sou yon tan, te gen yon nèg yo te rele Jack. Lè li rive fè zanmi, Jack pa t 'gen yon talan. Se konsa, Jack te ale nan pale ak nan pi popilè nèg li te konnen. Li te ale nan Lou epi li te mande: -Kisa m 'fè? Lou wè jan zanmi l ' te vrèman lapenn. Oke, li te kòmanse, jis gade ki jan w ap abiye. Pa ou gen nenpòt rad ak yon gade diferan? Wi, te di Jack. Mwen asire w fè. Vini nan kay mwen an ak Mwen pral montre yo ba ou. Se konsa, y 'al yo ale nan Jack lan. Ak Jack te montre Lou ti bwat la kote li menm te kenbe tout chemiz li, ak pantalon l 'yo, ak chosèt l' yo. Lou di: -Mwen wè ou gen tout rad ou a nan yon pil. Poukisa nou pa ou mete kèk lòt moun yon fwa nan yon ti moman? Jack di, byen, lè m ' retire rad ak chosèt, Mwen lave yo, li mete yo ale nan bwat la. Lè sa a, vini pwochen an maten, li leve mwen hop. M 'ale nan ti bwat la epi pou yo jwenn rad mwen an tèt la. Lou byen vit reyalize pwoblèm nan ak Jack. Li te kenbe rad sou li, CD a, ak liv nan chemine a. Lè l 'rive pou yon bagay li oswa yo mete, li ta chwazi liv nan tèt oswa kilòt. Lè sa a, lè li te rive, li ta mete li dwat tounen. Retounen li ta ale, sou tèt pil la. Mwen konnen solisyon an, di yon Byen fò triyonfan. Ou bezwen pou aprann kòmanse lè l sèvi avèk yon keu. Lou pran rad la ak Jack pann yo nan klozèt la. Lè li fin vide rès dlo bwat la, li jis anlè li. Lè sa a, li te di, kounye a Jack, nan fen jou a, mete rad ou sou bò gòch la lè ou mete yo ale. Lè sa a, demen maten lè ou wè solèy la, jwenn rad ou sou bò dwat la, ki soti nan nan fen liy. Pa ou wè? di Lou. Li pral tèlman bèl. Ou pral mete tout bagay yon fwa anvan ou mete yon bagay de fwa. Se avèk tout bagay nan ke moun kap kriye nan klozèt l ', li etajè, Jack te kòmanse santi byen asire nan tèt li. Tout gras a Lou ak bèl bagay keu l 'yo. Oratè 1: Tout dwa, li nan adorabl. Se konsa, sa ki te reyèlman ale sou anba kapo a kounye a? Ke nou gen endikasyon, ke nou gen malok, ke nou gen kapasite a yo kreye fragman nan memwa pou tèt nou dynamique. Se konsa, sa a se yon nou foto antrevwar jis lòt jou a. Nou pa t 'reyèlman rete sou li, men foto sa a ki te ale sou anba kapo a pou semèn kounye a. Se konsa, sa a reprezante, jis yon rektang ke nou te trase, memwa òdinatè w lan an. E petèt òdinatè w lan, oswa CS50 ID, te gen yon jigokte nan memwa oswa RAM oswa de jigokte oswa kat. Li pa reyèlman gen pwoblèm. Sistèm opere ou Windows oswa Mac OS oswa Linux, esansyèlman pèmèt pwogram ou yo panse ke li gen aksè antye a nan memwa òdinatè w lan an, menm si ou ta ka kouri pwogram miltip nan yon fwa. Se konsa, an reyalite, ki pa reyèlman travay. Men, li la kalite yon ilizyon bay tout pwogram ou yo. Se konsa, si ou te gen de jig nan RAM, sa a se ki jan òdinatè a ta ka panse nan li. Koulye a, azar, youn nan sa yo bagay sa yo, youn nan sa yo segments de memwa, yo rele yon pil. Ak tout bon nenpòt ki lè konsa byen lwen nan kòd ekri ke ou te rele yon fonksyon, pou egzanp prensipal la. Sonje byen, nenpòt ki lè mwen te memwa trase òdinatè a, Mwen toujou trase sòt de mwatye nan yon rektang isit la epi yo pa anmède pale sou sa ki nan pi wo a. Paske lè prensipal rele, mwen fè reklamasyon ke ou jwenn sa a tranch nan memwa ki ale desann isit la. Men, si prensipal rele yon fonksyon tankou swap, byen swap ale isit la. Apre sa, li vire soti, sa a, se kote li fini monte. Sou yon bagay yo rele yon pil andedan nan memwa òdinatè ou a. Koulye a, nan fen jounen an, sa a se jis adrese. Se tankou multiple zewo, multiple yon sèl, multiple 2 milya dola. Men, si ou panse sou li tankou sa a objè rektangilè, tout sa nou ap fè chak fwa nou rele yon fonksyon se stratifikasyon yon ti tranch nouvo sou memwa. Nou ap bay ki fonksyon yon ti tranch nan memwa pwòp li yo nan travay avèk yo. Epi sonje kounye a ke sa a se enpòtan. Paske si nou gen yon bagay tankou swap ak de varyab lokal tankou A ak B ak nou chanje valè sa yo soti nan yon ak de nan de ak yon sèl, sonje ke lè swap retounen, li a tankou si sa a tranch nan memwa se jis ale. An reyalite, li la toujou gen forensically. Ak yon bagay la toujou aktyèlman la. Men, concept, li la kòm menm si li nan konplètman disparèt. Se konsa, prensipal pa konnen nenpòt nan travay la ki te fè l 'nan ki fonksyon swap, sòf si li la aktyèlman te pase nan sa yo agiman pa konsèy oswa pa referans. Koulye a, solisyon an fondamantal ak sa yo ki pwoblèm ak swap ap pase bagay sa yo nan pa adrès. Men, li vire soti, tou, sa ki nan te ale sou pi wo a pati sa a a rektang lan tout tan tout tan sa a se ankò gen nan plis memwa moute a. Men, lè ou dynamique asiyen memwa, si li nan andedan nan GetString, ki nou ve yo te fè pou ou nan CS50 nan bibliyotèk, oswa si ou nèg rele malok epi mande sistèm nan fonksyone pou yon ti moso nan memwa, li pa soti nan pil la. Li vini soti nan yon lòt kote nan memwa òdinatè w lan an ki yo rele pil wòch la. Epi sa a, pa nenpòt ki diferan. Li nan menm RAM nan. Li nan menm memwa a. Se jis belye mouton an sa a, se moute gen olye pou yo desann isit la. Se konsa, ki sa sa vle di? Bon, si òdinatè ou a gen yon kantite lajan fini nan memwa ak chemine a ap grandi moute, se konsa konsa pale, ak pil wòch la, dapre flèch sa a, ap grandi desann. Nan lòt mo, chak fwa ou rele malok, w ap yo te ba yo yon ti tranch nan memwa soti nan pi wo a, Lè sa a, petèt yon ti kras pi piti, lè sa a yon ti kras pi ba, chak fwa ou rele malok, pil wòch la, li la l ', se kalite k ap grandi, ap grandi pi pre ak pi pre ki sa? Chemine a. Se konsa, sa sanble tankou yon bon lide? Mwen vle di, ki kote li a pa reyèlman klè ki lòt bagay ou ka fè si ou sèlman gen yon kantite fini nan memwa. Men, sa a se siman move. De flèch Moun sa yo ki se sou yon aksidan kou pou youn ak lòt. Epi li vire soti ke nèg move, jan ki sa yo patikilyèman bon ak pwogram, ak ap eseye Hack nan òdinatè, ka esplwate reyalite sa a. An reyalite, se pou yo konsidere yon ti kras brib. Se konsa, sa a se yon egzanp ou ka li sou nan plis detay sou Wikipedya. Nou pral pwen ou nan la atik si kirye. Men, gen nan yon atak jeneralman li te ye tankou tanpon debòde ki te egziste pou osi lontan ke moun te gen kapasite a manipile memwa òdinatè a, espesyalman nan C. Se konsa, sa a se yon pwogram trè abitrè, men kite a li li l 'anba nan fon moute a. Main nan zetwal Char argv arg. Se konsa, li yon pwogram ki pran liy lòd agiman. Apre sa, tout prensipal aparamman se apèl yon fonksyon, rele l 'F pou senplisite. Apre sa, li pase nan ki sa? Argv nan yon sèl. Se konsa, li pase nan F tou sa pawòl Bondye a se ke itilizatè a tape nan èd memwa a apre nan Non pwogram lan nan tout. Se konsa, anpil tankou Seza oswa Vigenere, ki ou ta ka sonje fè ak argv. Se konsa, ki sa ki F? F pran nan yon fisèl kòm agiman sèl li yo, AKA yon etwal Char, se li menm bagay, kòm yon fisèl. Ak sa yo rele abitrèman bar nan egzanp sa a. Lè sa a, Char c 12, jis nan tèm pwofàn la, ki sa ki Char c bracket 12 fè pou nou? Ki sa ki nan li fè? Allocation memwa, espesyalman 12 bytes pou 12 charaktèr. Egzakteman. Lè sa a, liy ki sot pase a, brase ak kopi, ou te pwobableman pa t 'wè. Sa a se yon kopi fisèl fonksyon ki gen objektif nan lavi se a kapab bay kopi dezyèm agiman li yo nan premye agiman li yo, men se sèlman jiska yon sèten kantite bytes. Se konsa, twazyèm agiman an di, konbyen bytes ou ta dwe kopi? Longè a nan ba, tou sa itilizatè a tape nan. Apre sa, sa ki nan bar, ki fisèl, se kopye nan memwa a pwente nan nan C. Se konsa, sa a sanble kalite estipid, epi li se. Li se yon egzanp parvenus, men li la reprezantan nan yon klas nan vektè atak, yon fason pou atake yon pwogram. Tout se amann ak bon si itilizatè a kalite nan yon mo sa a, se 11 karaktè pou pi plis, plis antislach a zewo. E si ki kalite itilizatè nan plis pase 11 oswa 12 oswa 20 oswa 50 karaktè? Ki sa ki nan pwogram sa a pral fè? Ki kapab seg fay. Li k ap pase je fèmen kopi tout bagay nan ba moute nan longè li yo, ki se literalman tout bagay nan ba, nan adrès la pwente nan C. Men, C te sèlman preemptively bay kòm 12 bytes. Men, gen nan pa gen chèk adisyonèl. Gen nan pa gen si kondisyon. Gen nan pa gen erè tcheke isit la. Se konsa, ki sa pwogram sa a se pral fè se jis je fèmen kopi yon sèl bagay nan lòt la. Se konsa, si nou trase sa a kòm yon foto, isit la nan jis yon tranch nan espas ki la memwa. Se konsa, remake nan pati anba a, nou gen ba a lokal varyab. Se konsa, ki konsèy ki k ap pase yo store-- olye ke agiman lokal sa a, se ale nan magazen ba a fisèl. Lè sa a, remake jis pi wo a li nan yon pil, paske chak fwa ou mande pou memwa sou chemine a, li ale yon ti jan pi wo a li pictorially, avi ke nou te gen 12 bytes la. Yon sèl nan gòch anwo se C bracket zewo ak yon sèl nan pati anba dwa se C bracket 11. Sa a jis ki jan òdinatè yo ale nan mete l 'deyò. Se konsa, jis entwitif, si gen plis ba pase 12 karaktè nan total, ki gen ladan antislach a zewo, kote se la 12 oswa bracket a C 12 pral ale? Oswa olye kote se 12yèm la karaktè oswa pèsonaj la 13th, pèsonaj la santyèm pral nan fen moute nan foto a? Pi wo pase oswa anba a? Dwa, paske menm si chemine a li menm ap grandi anwo, yon fwa ou te mete bagay nan li, li pou rezon konsepsyon, mete memwa a depi anwo jouk anba. Se konsa, si ou te gen plis pase 12 bytes, w ap ale nan kòmanse recouvrir ba. Koulye a, sa a, se yon ensèk, men li la pa reyèlman yon kontra gwo. Men, li se yon kontra gwo, paske gen nan plis bagay ap pase nan memwa. Se konsa, isit la nan ki jan nou ta ka mete hello, yo dwe klè. Si m 'tape nan alo nan èd memwa a. H-E-L-L-O antislach zewo, fini moute nan moun 12 bytes, epi nou ap super ki an sekirite. Tout bagay anfòm. Men, si mwen tape yon bagay pi long, ki kapab li nan ale nan ranpe nan espas bar. Men, pi mal ankò, li vire soti tout tan sa a, menm si nou pa janm te te pale osijè de li, se chemine a itilize pou lòt bagay. Li pa jis varyab lokal yo. C se yon lang nivo ki ba anpil. Epi, se sòt de an kachèt sèvi ak chemine a tou sonje lè yon se fonksyon rele, ki sa adrès la se nan fonksyon an anvan, se konsa li ka sote tounen nan ki fonksyon. Se konsa, lè apèl prensipal swap, nan mitan bagay sa yo pouse sou chemine a yo pa sèlman swaps varyab lokal yo, oswa agiman li yo, tou an kachèt pouse sou chemine a kòm reprezante pa tranch la wouj isit la, se adrès ki nan prensipal fizikman nan memwa òdinatè w lan an, se konsa ke lè swap a se fè, òdinatè a konnen mwen bezwen pou tounen nan prensipal epi fini egzekite fonksyon prensipal la. Se konsa, sa a se danjere kounye a, paske si kalite yo itilizatè nan byen plis pase hello, sa yo ki D 'itilizatè a clobbers oswa ranplas ki seksyon wouj, lojikman si òdinatè a jis ale nan je fèmen asime ki bytes yo nan ki tranch wouj yo adrès la nan ki li ta dwe retounen, sa ki si advèsè a se entelijan ase oswa chans ase yo mete yon sekans nan bytes gen ki sanble ak yon adrès, men li la adrès la nan kòd ke li oswa li te vle òdinatè a al touye olye pou yo prensipal yo? Nan lòt mo, si sa a itilizatè se sezisman nan èd memwa a, se pa jis yon bagay anoden tankou hello, men li la aktyèlman Kòd sa a, se ekivalan yo efase tout dosye itilizatè sa a? Oswa voye yon imèl modpas yo m 'konsa? Oswa kòmanse antre yo frap, dwa? Gen se yon fason, se pou yo ladann jodi a, ke yo te kapab tape nan pa sèlman alo mond oswa non yo, yo te kapab esansyèlman pase nan kòd, zewo ak yo menm, ki òdinatè a erè pou tou de ak yon Kòd adrès. Se konsa, yon ti jan kwake abstrè, si nan kalite itilizatè nan ase Kòd konfwontasyon ke nou pral isit la tankou jeneralizasyon A. A se atak oswa lènmi. Se konsa, jis move bagay. Nou pa pran swen sou nan nimewo oswa zewo yo oswa moun jodi a, sa yo ki ou fini ranplasan ki seksyon wouj, remake ke sekans nan bytes. O 835 C zewo uit zewo. Epi, koulye a jan atik Wikipedya a isit la te pwopoze, si ou kounye a aktyèlman kòmanse etikèt bytes yo nan òdinatè w lan nan memwa, ki sa atik la Wikipedia se parenaj se ke, sa ki si adrès la nan ki multiple gòch tèt se 80 C 0 3508. Nan lòt mo, si nèg la move se entelijan ase ak kòd li oswa li ki aktyèlman mete yon nimewo isit la ke koresponn ak adrès ki nan kòd la li oswa li te sou fòm piki nan òdinatè a, ou ka je chèch ak òdinatè a nan fè anyen. Retire dosye, Hamelin bagay sa yo, l'ap pran sant trafik ou, literalman anyen ta ka sou fòm piki nan òdinatè a. Se konsa, yon debòde tanpon atak nan nwayo li se jis yon estipid, estipid prensip nan yon etalaj ki pa t 'gen limit li yo w tcheke yo. Lè sa a se ki sa ki super danjere ak ansanm super pwisan nan C se ke nou tout bon gen aksè nan nenpòt kote nan memwa a. Li a jiska nou, pwogramasyon yo, ki ekri kòd la orijinal tcheke longè a nan nenpòt ki reprize ranje ke nou ap manipile. Se konsa, yo dwe klè, sa ki nan ranje a? Si nou woule tounen nan sa a Kòd, mwen pa ta dwe jis chanje longè a nan ba, ki sa lòt mwen ta dwe dwe tcheke? Ki lòt bagay mwen ta dwe ap fè anpeche sa a atak antyèman? Mwen pa vle jis je fèmen di ke ou ta dwe kopi kòm anpil bytes kòm se longè a nan ba. Mwen vle di, kopi kòm bytes anpil ke yo se nan ba jiska resevwa lajan nan memwa, oswa 12 omaksimòm. Se konsa, mwen bezwen kèk kalite si kondisyon ki fè tcheke longè a nan ba, men si li depase 12, nou jis difisil Kòd 12 kòm maksimòm distans la posib. Sinon tanpon la sa yo rele atak debòde ka rive. Nan pati anba a nan tout sa yo glisad, si w ap kirye yo li plis se atik orijinal la aktyèl si ou ta renmen pran yon gade. Men koulye a,, nan mitan pri yo peye isit la te inefikas. Se konsa, sa ki te yon rapid ki ba nivo nan sa ki gade pwoblèm ka leve kounye a ke nou gen aksè a memwa òdinatè a. Men, yon lòt pwoblèm nou deja bite nan Lendi te jis ensifizans la nan yon lis lye. Nou se tounen nan tan lineyè. Nou pa gen yon etalaj vwazen. Nou pa gen aksè o aza. Nou pa ka sèvi ak notasyon bracket kare. Nou literalman gen yo sèvi ak yon riban pandan y ap tankou yonn nan mwen te ekri yon ti moman de sa. Men, nan Lendi, nou te deklare ke nou kapab ranpe tounen nan domèn nan efikasite akonplisman yon bagay sa a, se logaritmik petèt, oswa pi bon toujou, petèt menm yon bagay sa a, se sa yo rele tan konstan. 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, ak anfile bagay nan pwòp nou an? Oke, ta kwè ke isit la, sa yo, se yon pakèt moun nan nimewo ke nou vle nan magazen nan yon estrikti done ak rechèch efikasite. Nou ka absoliman remonte a semèn de, jete sa yo nan yon etalaj, ak rechèch yo lè l sèvi avèk rechèch binè. Divize ak konkeri. Lè an reyalite ou te ekri binè rechèch nan PSET3, kote ou aplike pwogram nan jwenn. Men, ou konnen ki sa. Genyen kalite yon plis entelijan fason pou fè sa a. Li se yon ti kras pi plis sofistike ak li petèt pèmèt nou wè poukisa binè rechèch se konsa anpil pi vit. Premyèman, se pou yo prezante nosyon de yon pye bwa. Ki menm si nan pyebwa reyalite kalite grandi tankou sa a, nan mond lan nan òdinatè syans yo kalite grandi anba tankou yon pyebwa fanmi, ki kote ou gen granparan ou a oswa granparan gwo oswa etajèr nan tèt la, patriyach a ak matron a nan fanmi an, yon sèl jis sa yo rele rasin, ne, pi ba a ki se pitit li yo, anba a ki se pitit li yo, oswa pitit pitit li yo pi plis jeneralman. Ak nenpòt moun ki pandye nan fon an nan fanmi an pye bwa, san konte ke yo te nan pi piti nan fanmi an, kapab tou jis pou generic rele fèy yo nan pyebwa sa a. Se konsa, sa a se jis yon pakèt moun nan mo ak definisyon pou yon bagay yo rele yon pye bwa nan òdinatè syans, anpil tankou yon pyebwa fanmi yo. Men, gen nan amateur enkarnasyon nan pye bwa, youn nan ki yo rele sa yon pye bwa rechèch binè. Apre sa, ou kapab kalite toumante apa sa bagay sa a fè. Oke, li nan binè nan ki sans? Ki kote binè nan soti nan isit la? Padon? Li nan pa tèlman yon swa oswa. Li nan plis ke chak nan nœuds yo pa gen okenn plis pase de timoun yo, jan nou wè isit la. An jeneral, yon tree-- ak paran ou ak pwogram granparan ka gen kòm anpil timoun oswa grandkids menm jan yo aktyèlman vle, e konsa pou egzanp gen nou gen twa timoun koupe ki ne men dwat, men nan yon pye bwa binè, yon ne gen zewo, yon sèl, oswa de timoun omaksimòm. Epi sa a, yon pwopriyete bèl, paske si li nan capped pa de, nou ap ale pou kapab jwenn yon baz boutèy demi lit ti kras de aksyon pase sou isit la finalman. Se konsa, nou gen yon bagay logaritmik. Men, plis sou sa nan yon moman. Search pyebwa vle di ke nimewo yo yo ranje sa yo ke timoun nan bò gòch la valè ki pi konsekan pase rasin lan. Ti gason dwat li yo se pi gwo pase rasin lan. Nan lòt mo, si ou pran nenpòt nan la nœuds, ti sèk ki genyen nan foto sa a, ak sanble sou bò gòch li yo pitit ak pitit dwat li yo, premye a ta dwe mwens pase, dezyèm lan yo ta dwe pi gran pase. Se konsa, saniti tcheke 55. Li nan kite timoun se 33. Li nan pi piti pase. 55, pitit dwa li se 77. Li nan pi gwo pase. Epi sa a, yon definisyon repetitif. Nou te kapab tcheke chak youn nan moun ki nœuds ak modèl nan menm ta kenbe. Se konsa, sa ki nan bèl nan yon pyebwa rechèch binè, se ke yon moun, nou ka aplike li ak yon struct, jis renmen sa a. E menm si nou ap voye anpil nan estrikti a ou, yo ap yon ti jan entwisyon kounye a èspere ke. Sentaks la se toujou Esoteric pou asire w, men sa ki nan yon ne nan sa a context-- epi nou kenbe lè l sèvi avèk mo ne la, si li nan yon rektang sou ekran an oswa yon sèk, li nan jis kèk veso jenerik, nan ka sa a nan yon pye bwa, tankou yon sèl la nou te wè, nou bezwen yon nonb antye relatif nan chak nan nœuds yo ak Lè sa a mwen bezwen de endikasyon pwente ak timoun nan bò gòch ak pitit an dwa, respektivman. Se konsa, sa a, se ki jan nou ta ka aplike ke nan yon struct. Ak ki jan ta ka mwen aplike li nan kòd? Oke, kite a pran yon rapid gade nan sa a ti egzanp. Li pa fonksyonèl, men mwen te kopye ak kole ki estrikti. Men, si fonksyon mwen pou yon binè se pye bwa rechèch rele rechèch, ak sa a pran de agiman, yon nonb antye relatif N ak yon konsèy nan yon ne, se konsa yon konsèy bò pyebwa ki oswa yon konsèy nan rasin lan nan yon pye bwa, ki jan mwen ale sou pou chèche N? Oke, premye, paske mwen se fè fas ak endikasyon, Mwen pral fè yon chèk saniti. Si egal pyebwa egal nil, se N nan pye bwa sa a oswa ou pa nan pye bwa sa a? Li pa kapab, dwa? Si mwen menm ki sot pase nil, pa gen anyen la. Mwen ta ka kòm byen jis je fèmen di retounen fo. 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 tcheke kounye a? Mwen pral di byen lòt moun si se N mwens pase tou sa se nan ne la pyebwa ke mwen ve yo te lage N valè. Nan lòt mo, si kantite a mwen se kap chèche, N, se mwens pase ne nan ke mwen gade nan. Apre sa, ne la M 'ap chache a yo rele pye bwa, ak sonje nan egzanp la anvan yo ka resevwa nan valè a nan yon konsèy, Mwen sèvi ak notasyon a flèch. Se konsa, si N se mwens pase flèch pyebwa N, mwen vle ale concept kite. Kouman pou mwen eksprime chèche rete? Pou yo kapab klè, si sa a se foto a nan kesyon, epi mwen te te pase ki topmost arrow ki nan lonje dwèt desann. Sa a konsèy pyebwa m 'yo. M 'ap lonje dwèt nan rasin lan nan pyebwa sa a. Apre sa, mwen ap chache di, pou nimewo a 44, abitrèman. Èske 44 mwens pase oswa pi gran pase 55 evidamman? Se konsa, li mwens pase. Se konsa, sa a si kondisyon aplike. Se konsa, concept, ki sa mwen vle rechèch pwochen si M 'ap chache 44? Yeah? Egzakteman, mwen vle rechèch timoun nan gòch, oswa pye bwa a sub-rete nan foto sa a. Lè an reyalite, se pou m 'nan foto a desann isit la pou jis yon ti moman, depi Mwen pa ka grate sa a soti. Si mwen kòmanse isit la nan 55, ak Mwen konnen ke valè a 44 M 'ap chache se bò gòch la, li nan kalite de tankou chire liv la telefòn nan mwatye oswa chire pye bwa a nan mwatye. Mwen pa gen pran swen sou sa a mwatye tout antye de pyebwa sa a. E ankò, kiryozite an tèm de la estrikti, bagay sa a sou isit la ki kòmanse ak 33, ki tèt li se yon pye bwa rechèch binè. M 'te di pawòl Bondye a repetitif anvan paske tout bon sa a se yon estrikti done ki pa definisyon se repetitif. Ou ta ka gen yon pye bwa sa a, se sa a gwo, men chak youn nan timoun li yo reprezante yon pye bwa jis yon ti kras pi piti. Olye pou yo li ke yo te papa oswa granmè, kounye a li nan jis manman or-- Mwen pa ka say-- pa manman oubyen papa, ki ta ka etranj. Olye de sa de timoun yo gen ta dwe tankou frè ak frè ak sè. Yon nouvo jenerasyon nan pye bwa a fanmi yo. Men, struktural, li nan lide la menm. Epi li vire soti mwen gen yon fonksyon ak ki mwen kapab fè rechèch yon rechèch binè pye bwa. Li te rele rechèch. Mwen rechèch pou N nan pye bwa bò gòch flèch lòt bagay si N gen plis pouvwa pase valè a ke mwen se kounye a nan. 55 nan istwa a yon ti moman de sa. Mwen gen yon fonksyon rele rechèch ke mwen ka jis pase N sa a epi recursive rechèch pye bwa a sub-ak jis retounen tou sa ki repons. Lòt Bagay mwen te gen kèk ka baz final isit la. Ki sa ki se ka a final? Tree se swa nil. Valè a mwen swa chèche pou se mwens pase sa li oswa pi plis pase sa oswa egal a li. Apre sa, mwen te kapab di egal egal, men lojikman li a ekivalan a jis di lòt bagay isit la. Se konsa, vre se ki jan mwen jwenn yon bagay. Se konsa, èspere ke sa a se yon menm plis irezistib egzanp pase fonksyon an sigma estipid nou te fè yon konferans kèk tounen, kote li te menm jan fasil yo sèvi ak yon riban yo konte moute tout nimewo yo soti nan yon N. Isit la ak yon estrikti done ki li menm se recursive defini ak recursive trase, kounye a nou gen kapasite nan eksprime tèt nou nan kòd ki li menm se repetitif. Se konsa, sa a se kòd la egzak menm isit la. Se konsa, sa lòt pwoblèm nou ka rezoud? Se konsa, yon etap rapid lwen pye bwa pou jis yon ti moman. Isit la se, di, drapo a German. Apre sa, nan byen klè yon modèl nan drapo sa a. Apre sa, nan anpil nan drapo nan mond lan ki se kòm senp tankou sa a an tèm de koulè yo ak modèl. Men, si ke sa a se ki estoke kòm yon .GIF, Oswa yon JPEG, oswa bitmap, oswa yon ping, nenpòt fòma dosye grafik ak kote ou ap yo konnen yo, kèk nan yo ki nou ap jwe ak nan pset4. Sa a pa sanble entérésan nan magazen pixel nwa, pixel nwa, pixel nwa, dot, dot, dot, yon pakèt antye nan piksèl nwa pou scanline a an premye, oswa ranje, Lè sa a, yon pakèt antye nan menm, Lè sa a, yon pakèt moun nan tout antye nan menm bagay la, ak lè sa a yon pakèt antye nan piksèl wouj, piksèl wouj, piksèl wouj, Lè sa a, yon antye pakèt moun sou piksèl jòn, jòn, dwa? Genyen ensifizans sa yo isit la. Ki jan ou ta entwitif konpresyon drapo Alman an si mete ann aplikasyon li kòm yon dosye? Fè tankou ki enfòmasyon nou pa kapab anmède estoke sou ki gen kapasite yo nan lòd a diminye gwosè dosye nou yo soti nan tankou yon megaokte nan yon kilobit, yon bagay pi piti a? Sa fè manti èkse nan isit la yo dwe klè? Ki sa ou ta ka fè? Yeah? Egzakteman. Poukisa nou pa olye ke sonje koulè a ​​nan chak pixel reprize jis tankou ou ap fè nan pset4 ak fòma a dosye bitmap, poukisa yo pa ou jis reprezante nan leftmost kolòn nan piksèl, pou egzanp yon pakèt moun sou piksèl nwa, yon pakèt moun nan wouj, ak yon pakèt moun sou jòn, ak Lè sa a jis yon jan kanmenm programme a lide sou repete sa a 100 fwa oswa repete sa a 1,000 fwa? Ki kote 100 oswa 1,000 se jis yon nonb antye relatif, kidonk, ou ka jwenn lwen ak jis yon nimewo yon sèl olye pou yo dè santèn oswa dè milye nan plis piksèl. Ak tout bon, sa a, se ki jan nou te kapab konpresyon drapo a German. Apre sa, Koulye a, sa ki sou drapo a franse? Ak yon ti kras kèk sòt de fè egzèsis mantal, ki drapo ka konprese plis sou ki gen kapasite? Drapo Alman an oswa franse a drapo, si nou pran sa ki apwoche? Drapo Alman an, paske gen nan plis orizontal èkse. Apre sa, pa konsepsyon, anpil dosye grafik fòma tout bon travay liy kòm eskanè orizontal. Yo te kapab travay vètikal, jis limanite deside ane de sa ke nou pral jeneralman panse de bagay sa yo ranje pa ranje olye pou yo kolòn pa kolòn. Se konsa, tout bon si ou te fè yon gade nan dosye a gwosè nan yon drapo Alman yo ak yon franse drapo, toutotan rezolisyon an se menm, lajè a nan menm ak wotè, yon sèl sa a isit la a pwal pi gwo, paske ou gen repete tèt ou twa fwa. Ou gen presize ble, repete tèt ou, blan, repete tèt ou, wouj, repete tèt ou. Ou pa ka jis ale tout wout la nan bò dwat la. Apre sa, kòm yon sou kote, fè klè konpresyon nan se toupatou, si sa yo, se kat ankadreman ki sòti nan yon video-- ou ta ka sonje ke yon fim oswa videyo se jeneralman tankou 29 oswa 30 ankadreman pou chak dezyèm fwa. Se tankou yon liv baskile ti kras kote ou jis wè imaj, imaj, imaj, imaj, imaj jis super vit pou li sanble aktè yo sou ekran an ap deplase. Isit la nan yon myèl Bumble sou tèt yon pakèt moun sou flè. Epi menm si li ta kapab kalite difisil yo wè nan premye gade, bagay la sèlman k ap deplase nan sa a fim se myèl la. Ki sa ki se bèbè sou estoke videyo dekonprese? Li nan kalite yon fatra nan magazen videyo ke kat imaj prèske idantik ki diferan sèlman tèl degre ke kote myèl la se. Ou ka jete pi nan enfòmasyon ki epi sonje sèlman, pou egzanp, ankadreman an premye ak dènye ankadreman an, ankadreman kle si ou te janm tande pawòl la, ak jis magazen an nan mitan kote myèl la se. Apre sa, ou pa bezwen magazen tout nan woz a, ak ble a, ak nan valè vèt kòm byen. Se konsa, sa a se senpleman di ke konpresyon se toupatou. Li se yon teknik nou itilize souvan oswa pran pou yo akòde jou sa yo. Men, ki jan ou konpresyon tèks? Ki jan ou fè ale sou konprime tèks? Oke, chak nan karaktè yo ki nan Ascii se youn multiple, oswa uit miyèt moso. Epi sa a, kalite bèbè, dwa? Paske pwobableman ou tape Yon ak E ak mwen ak O ak U yon anpil pi souvan pase tankou W oswa Q oswa Z, depann sou lang lan nan ki w ap ekri sètènman. Se konsa, poukisa yo nou lè l sèvi avèk uit Bits pou chak lèt, ki gen ladan pi piti a lèt popilè, dwa? Poukisa nou pa sèvi ak mwens Bits pou lèt yo super popilè, tankou E, bagay sa yo ou devine premye nan Rou nan Fortune, epi sèvi ak plis Bits pou lèt yo mwens popilè? Poukisa? Paske nou ap jis ale nan sèvi ak yo mwens souvan. Oke, li sanble ke gen gen te tantativ te fè nan fè sa. Men, si ou sonje soti nan klas yo lekòl la oswa lekòl segondè, Morse kòd. Morse Kòd gen pwen ak tirè ki ka transmèt sou yon fil kòm son oswa siyal nan kèk sòt. Men, Morse kòd se yon pwòp super. Li nan kalite yon sistèm binè nan ke ou gen pwen oswa tirè. Men, si ou wè, pou egzanp, de pwen. Oswa si ou panse tounen nan operatè a ki ale tankou BEEP, BEEP, BEEP, BEEP, frape yon ti kras deklanche ki transmèt yon siyal, si ou, moun k ap resevwa a, resevwa de pwen, ki sa mesaj ou resevwa? Konplètman abitrè. Mwen? Mwen? Oswa sa ki sou- oswa mwen? Petèt li te jis de dwat E la? Se konsa, gen nan pwoblèm sa a a decodability ak Morse Kòd, annakò ak sa sof si nan moun voye ou mesaj la aktyèlman poz pou ou kapab sòt nan wè oswa tande twou vid ki genyen ki genyen ant lèt, li nan pa ase jis yo voye yon kouran nan zewo ak moun yo, oswa pwen ak tirè, paske gen nan anbigwite. E se yon sèl dot, kidonk si w wè de pwen oswa tande de pwen, petèt li nan de E la oswa petèt li nan youn I. Se konsa, nou bezwen yon sistèm ki nan yon ti kras pi plis entelijan pase sa. Se konsa, yon nonm yo rele Huffman ane Anons sa pibliye depi te vini ak egzakteman sa a. Se konsa, nou ap jis pral pran ti koutje sou rapid yon nan ki jan pyebwa yo konvnabl nan sa a. Sipoze ke sa a se kèk mesaj estipid ou vle voye, ki konpoze de jis A, B, C a D's ak E la, men gen nan yon anpil nan èkse isit la. Li pa nan vle di yo dwe lang angle. Li pa nan chiffres. Se jis nan yon mesaj estipid avèk anpil repetisyon. Se konsa, si ou aktyèlman konte soti tout nan Yon a, B a, C a, D's, ak E la, isit la nan frekans lan. 20% nan lèt yo se Yon a, 45% nan lèt yo se E la, ak twa lòt frekans. Nou konte 'kanpe manyèlman ak jis te fè matematik la. Se konsa, li sanble ke Huffman, gen kèk tan de sa, reyalize ke, ou konnen ki sa, si mwen kòmanse bilding yon pye bwa, oswa forè nan pye bwa, si ou vle, jan sa a, mwen ka fè bagay sa yo. Mwen pral bay yon ne nan chak nan lèt yo ke mwen pran swen sou ak mwen pral nan magazen andedan nan ki ne fwekans yo kòm yon pwen k ap flote valè, oswa ou ta ka sèvi ak li yon N, tou, men nou pwal jis itilize yon flote isit la. Apre sa, algorithm a ki li te pwopoze se ke ou pran forè sa a nan yon sèl ne pye bwa, pye bwa se konsa super ti bout tan, epi ou kòmanse konekte yo ak gwoup nouvo, nouvo paran yo, si ou pral. Epi ou fè sa pa chwazi nan de pi piti frekans nan yon tan. Se konsa, mwen te pran 10% ak 10%. Mwen kreye yon nouvo ne. Apre sa, mwen rele ne nan nouvo 20%. Ki de nœuds mwen konbine apre a? Li se yon ti kras Limit. Se konsa, gen nan kèk ka kwen nan konsidere, men yo kenbe bagay sa yo bèl, Mwen pral chwazi 20% - Mwen kounye a inyore timoun yo. Mwen pral chwazi 20% ak 15% epi trase de nouvo bor. Epi, koulye a ki de nœuds Mwen lojikman konbine? Ignore tout timoun yo yo, tout pitit pitit, jis gade nan rasin yo kounye a. Ki de nœuds mwen mare ansanm? Point de ak 0.35. Se konsa, kite m 'fè de nouvo bor. Lè sa a, mwen te sèlman te resevwa yon sèl kite. Se konsa, isit la nan yon pyebwa. Apre sa, li a te trase fè espre yo gade kalite bèl, men remake ke bor yo gen tou yo te ki make zewo ak yon sèl. Se konsa, tout nan bor yo kite yo zewo abitrèman, men toujou. Tout bor yo dwa yo se yo menm. Se konsa, sa ki Hoffman pwopoze se, se si ou vle reprezante yon B, olye ke reprezante ki kantite 66 kòm yon ASCII ki se uit Bits antye, ou konnen ki sa, jis magazen modèl la zewo, zewo, zewo, zewo, paske sa a, se chemen an soti nan pye bwa mwen, pye bwa Mesye Huffman a, fèy la soti nan rasin lan. Si ou vle nan magazen yon E, pa kontra, pa fè sa voye uit Bits ki reprezante yon E. Olye de sa, voye sa modèl nan Bits? Yon. Ak sa ki nan bèl sou sa a se ki E se lèt la ki pi popilè, ak w ap itilize a pi kout kòd pou li. Pwochen Ki pi popilè a lèt sanble li te A. Se konsa, ki jan anpil Bits li te pwopoze lè l sèvi avèk pou sa? Zewo, yon sèl. Epi paske li nan aplike kòm pye bwa sa a, pou kounye a kite m 'ladann gen nan pa gen okenn anbigwite tankou nan Morse Kòd, paske tout nan la lèt ou pran swen sou se nan fen bor sa yo. Se konsa, sa a, se sèlman yon sèl aplikasyon nan yon pye bwa. Sa a is-- epi mwen pral balanse men m 'nan sa a ki jan ou ta ka aplike sa a kòm yon estrikti C. Nou jis bezwen konbine yon senbòl, tankou yon Char, ak frekans lan nan kite la ak dwa. Men, se pou pou yo gade nan de egzanp final ki ou pral jwenn byen abitye ak apre egzamen zewo nan pwoblèm mete senk. Se konsa, gen estrikti nan done li te ye tankou yon tab regle. Apre sa, yon tab regle se kalite fre nan ke li gen bokit. Apre sa, sipoze gen nan kat bokit isit la, jis kat espas vid. Isit la nan yon pil kat la kat, ak isit la se klib, Spade, klib, Diamonds, klib, Diamonds, klib, Diamonds, clubs-- kidonk sa a se o aza nan. Kè, se konsa mwen hearts-- bucketizing tout nan entrain yo isit la. Ak yon bezwen tab regle fè yon gade nan opinyon ou a, ak Lè sa a mete l 'nan yon sèten mete ki baze sou sa ou wè. Li nan yon algorithm. Apre sa, mwen te lè l sèvi avèk yon super senp algorithm vizyèl. Pati nan pi di nan sa ki te sonje sa foto yo te ye. Lè sa a, gen nan kat bagay total. Koulye a, pil yo te ap grandi, ki se yon bagay konsepsyon ekspre isit la. Men, ki lòt bagay mwen ta ka fè? Se konsa, aktyèlman isit la nou gen yon pakèt moun sou liv egzamen lekòl fin vye granmoun. Sipoze ke yon pakèt moun sou elèv yo non yo sou isit la. Isit la nan yon tab regle pi gran. Olye de sa nan kat bokit, Mwen te, kite a di 26. Apre sa, nou pa t 'vle ale prete 26 bagay soti an deyò de [? Annenberg?], Se konsa isit la nan senk ki reprezante A jiska Z. Men, si mwen wè yon elèv ki gen non kòmanse ak A, Mwen pral mete l 'osinon egzamen l' la. Si yon moun kòmanse ak C, lòt bò a, A-- aktyèlman, pa t 'vle fè sa. B ale sou isit la. Se konsa, mwen te gen A ak B ak C. Epi kounye a isit la nan yon lòt Yon elèv. Men, si sa a tab regle se aplike ak yon etalaj, Mwen kalite vise nan pwen sa a, dwa? Mwen kalite bezwen mete yon kote sa a. Se konsa, yon fason mwen kapab rezoud sa a se, tout dwa, A se okipe, B se okipe, C se ki okipe yo. Mwen pral mete l 'nan D. Se konsa, nan premye, mwen gen o aza aksè enstantane nan chak nan bokit yo pou elèv yo. Men koulye a, li la kalite dekonsantre nan yon bagay lineyè, paske si mwen vle pou fè rechèch pou yon moun Non ki gen kòmanse ak A, mwen tcheke isit la. Men, si sa a se pa A elèv M 'ap chache, Mwen kalite te kòmanse tcheke bokit yo, paske sa m 'te te sòt de linear pwofonde estrikti nan done. Yon fason estipid nan di jis gade la pou premye ouvèti a disponib, , li mete kòm yon plan B, se konsa pale, oswa plan D nan ka sa a, valè a nan ki kote pito. Sa a se jis se konsa ke si ou te te resevwa 26 kote ak gen okenn elèv yo ak Q a non oswa Z, oswa yon bagay tankou ki, omwen w ap itilize espas ki la. Men, nou te deja wè plis solisyon entelijan isit la, dwa? Ki sa ou ta fè olye pou si ou gen yon kolizyon? Si de moun ki gen Non Yon a, sa ki ta yo te yon pi plis pi entelijan oswa solisyon entwisyon pase jis mete yon kote D se ta sipoze ta dwe ye? Poukisa nou pa mwen jis ale deyò [? Annenberg?], tankou malok, yon lòt ne, mete l ' isit la, ak Lè sa a mete sa Yon elèv isit la. Se konsa, ke mwen esansyèlman gen kèk kalite yon etalaj, oswa petèt plis chik kòm nou ap kòmanse wè yon lis lye. Se konsa, yon tab regle se yon estrikti ki ta ka gade jis tankou sa a, men plis malen, ou yon bagay yo rele Anchènman ki apa a, annakò ak sa yon tab regle byen tou senpleman se yon etalaj, yo chak nan ki gen eleman se pa yon nimewo, se tèt li yon lis lye. Se konsa, ke ou jwenn aksè Super vit n ap deside ki kote yo Hash valè ou a. Anpil tankou ak egzanp lan kat, Mwen te fè desizyon super rapid. Kè ale isit la, Diamonds ale isit la. Menm isit la, Yon ale isit la, D ale isit la, B ale isit la. Se konsa, Super vit gade-ups, epi si ou rive kouri antre nan yon ka kote ou te gen kolizyon, de moun ki gen menm non yo, Lè sa a, byen ou jis kòmanse ki lye ak yo ansanm. E petèt ou kenbe yo Ranje par, petèt ou pa fè sa. Men, nan omwen kounye a nou gen dynamism lan. Se konsa, sou men nan yon sèl nou gen Super vit tan konstan, ak kalite nan tan lineyè patisipe si sa yo bay lis lye kòmanse yo ka resevwa yon ti kras long. Se konsa, sa a kalite yon komik, jiki blag ane de sa. Nan CS50 Hack-yon-thon nan, lè elèv tcheke nan ti, kèk TF oswa CA chak ane panse li nan komik mete monte yon siy tankou sa a, kote li jis vle di si non ou kòmanse ak yon A, al fè wout sa a. Si non w lan pi vit ak yon B, ale sa a men OK, li nan komik petèt pita nan semès la. Men, gen nan yon lòt fason pou fè sa, tou. Tounen vin jwenn sa. Se konsa, gen nan estrikti sa a. Lè sa a se dènye nou an estrikti pou jodi a, ki se yon bagay yo rele yon trye. T-R-I-E, ki pou kèk rezon se kout pou Rekipere, men sa yo rele trye. Se konsa, yon trye se yon lòt enteresan amalgam de yon anpil nan lide sa yo. Li se yon pye bwa, ki nou te wè anvan. Li pa yon pye bwa rechèch binè. Li se yon pye bwa ak nenpòt ki kantite timoun yo, men chak nan timoun yo nan yon trye se yon etalaj. Yon etalaj de gwosè, di, 26 oswa petèt 27 si ou vle sipòte non hyphenated oswa apostrof nan non moun nan. Se konsa, sa a se yon estrikti done. Men, si ou gade nan tèt jouk anba, tankou si ou gade nan ne an tèt la, M, se montre nan bagay la leftmost a, ki se Lè sa a, A, X, W, E, L, L. Sa a se jis yon estrikti done ki abitrèman se estoke non moun nan. Apre sa, Maxwell se ki estoke pa jis yo yon chemen nan etalaj nan etalaj nan etalaj. Men, sa ki nan etonan sou yon trye se sa, Lè nou konsidere ke yon lis lye e menm yon etalaj, pi bon an nou te janm vinn se tan lineyè oswa logaritmik tan kap yon moun yo. Nan ka sa estrikti done nan yon trye, si estrikti done mwen an gen yon non nan li ak M 'ap chache Maxwell, mwen ale nan jwenn li trè byen vit. Mwen jis gade pou M-A-X-W-E-L-L. Si estrikti sa a done, pa kontra, si N se yon milyon dola, si gen nan yon milyon dola non nan sa a estrikti done, Maxwell se toujou pral fè dekouvet apre jis M-A-X-W-E-L-L etap. Apre sa, David-- D-A-V-mwen-D etap. Nan lòt mo, pa bati yon estrikti done sa a, se te resevwa tout nan ranje sa yo, tout nan yo ki tèt yo sipòte aksè o aza, Mwen ka kòmanse leve je l 'moun nan non lè l sèvi avèk yon kantite tan sa a, se pwopòsyonèl pa nimewo a de bagay sa yo nan estrikti a done, tankou yon milyon dola non ki egziste deja. Kantite lajan an nan tan li pran m 'nan jwenn M-A-X-W-E-L-L nan sa a estrikti done se pwopòsyonèl pa nan gwosè nan estrikti a done, men yo longè a nan non yo. Apre sa, pli reyèlman nan non nou ap leve je l ' pa janm pral fè fou lontan. Petèt yon moun gen yon karaktè 10 non, 20 Non karaktè. Li nan sètènman fini, dwa? Gen yon moun sou Latè ki gen non ki pi long posib, men sa non se yon konstan valè longè, dwa? Li pa varye nan nenpòt ki sans. Se konsa, nan fason sa a, nou te reyalize yon estrikti done ki se tan konstan gade-up. Li fè sa pran yon kantite etap depann sou longè a nan D 'a, men se pa ki kantite Non nan estrikti a done. Se konsa, si nou double nimewo a nan non ane kap vini an ki sòti nan yon milya dola nan de milya dola, jwenn Maxwell se pral pran egzak menm kantite sèt etap jwenn li. Se konsa, nou sanble yo te reyalize grail apa pou Bondye nou an nan kouri tan. Se konsa, yon koup la anons rapid. Egzamen zewo a ap vini yo. Plis sou ki sou sit entènèt kou a nan sou koup la pwochen nan jou. Lendi a lecture-- li nan yon jou fèt isit la nan Harvard nan Lendi. Li pa nan New Haven, se konsa nou ap pran klas la nan New Haven pou konferans nan Lendi. Tout yo pral filme-li ak difuze ap viv kòm dabitid, men kite a fini jodi a ak yon 30 dezyèm clip rele "Refleksyon Gwo twou san fon" pa Daven Farnham, ki te enspire ane dènye pa Samdi "Refleksyon Gwo twou san fon" swa Live an pa Jack Sou la men, ki ta dwe kounye a fè sans. FIM: Epi, koulye a, "Gwo twou san fon Refleksyon "pa Daven Farnham. Hash tab. Oratè 1: Tout dwa, sa a, se li pou kounye a. Nou pral wè ou an semèn pwochèn. DOUG: Pou wè l 'nan aksyon. Se konsa, kite a pran yon gade nan ki kounye a. Se konsa, isit la, nou gen yon etalaj triye. Ian: Doug, ou ka ale pi devan epi rekòmanse sa a pou sèlman yon sèl dezyèm lan, tanpri. Tout dwa, kamera yo woule, se konsa aksyon chak fwa w ap pare, Doug, OK? DOUG: Tout dwa, se konsa sa nou gen isit la se yon etalaj triye. Apre sa, mwen te ki gen koulè pal tout nan eleman yo wouj yo endike ke li se, an reyalite, triye. Se konsa, sonje ke premye bagay la nou fè se nou sòt mwatye nan bò gòch nan etalaj la. Apre sa, nou sòt dwat a mwatye nan etalaj la. Epi ya-da, ya-da, ya-da, nou rantre yo ansanm. Epi nou gen yon etalaj Ranje konplètman. Se konsa, lè sa a jan rantre sòt travay. Ian: Ola, ola, ola, koupe, koupe, koupe, koupe. Doug, ou pa ka jis ya-da, ya-da, ya-da, fason ou nan sòt unifye. DOUG: Mwen jis te fè. Li nan amann. Nou ap bon yo ale. Se pou nou jis kenbe woule. Se konsa, de tout fason, Ian: Ou gen yo eksplike li plis konplètman pase sa. Se jis pa ase. DOUG: Ian, nou pa fè sa bezwen pou tounen nan yon sèl. Li nan amann. Se konsa, de tout fason, si nou kontinye ak merge-- Ian, nou ap nan mitan an nan tal filme. Ian: Mwen konnen. Epi nou pa kapab jis ya-da, ya-da, ya-da, atravè tout pwosesis la tout antye. Ou gen yo eksplike ki jan nan de kote sa jwenn fizyone ansanm. DOUG: Men, nou te deja eksplike ki jan sides-- nan de Ian: Ou te jis montre yo yon etalaj unifye. DOUG: Yo konnen pwosesis la. Yo ap amann. Nou te ale sou li dis fwa lè lè. Ian: Ou jis sote dwat sou li. Nou ap pral tounen nan yon sèl, ou pa kapab ou ya-da, ya-da sou li. Tout dwa, tounen nan yon sèl. DOUG: Mwen gen yo ale retounen lakay nan tout nan glisad yo? Bondye mwen an. Se tankou tan an sizyèm, Ian. Li nan amann. Ian: Tout dwat. Ou pare? Great. Aksyon.