1 00:00:00,000 --> 00:00:12,040 >> [Tónlist spila] 2 00:00:12,040 --> 00:00:16,460 >> Ræðumaður 1: Allt í lagi, þetta er CS50, og þetta er byrjun á viku fjórum, 3 00:00:16,460 --> 00:00:20,420 og eins og þú gætir hafa heyrt eða lesa, heimurinn hefur verið að ljúka. 4 00:00:20,420 --> 00:00:23,520 Fara um allan netið hefur verið þekkingu og skilning 5 00:00:23,520 --> 00:00:27,100 af galla í a program, a tungumál forritun heitir Bash. 6 00:00:27,100 --> 00:00:32,729 Þetta hefur verið frábærlega vörumerki sem ShellShock, eða Bash dyr, 7 00:00:32,729 --> 00:00:35,485 en greinar eins og þessir hafa ekki verið óalgengt. 8 00:00:35,485 --> 00:00:38,807 Og í raun, margir af þeim koma minningar um Heartbleed, 9 00:00:38,807 --> 00:00:41,640 sem þú gætir hafa tekið eftir í ýta aftur síðastliðið vor, sem 10 00:00:41,640 --> 00:00:43,980 var álíka nokkuð dramatísk. 11 00:00:43,980 --> 00:00:47,110 Nú þeirra af þér hér í dag, hversu margir ykkar hafa, 12 00:00:47,110 --> 00:00:50,330 jafnvel ef þú skilur ekki hvað það er allt um, heyrt um ShellShock? 13 00:00:50,330 --> 00:00:51,370 14 00:00:51,370 --> 00:00:54,245 Allt í lagi, og hversu margir af ykkur hafa tölvur sem eru viðkvæm? 15 00:00:54,245 --> 00:00:55,680 16 00:00:55,680 --> 00:01:00,250 OK, það ætti að vera langt, langt fleiri hendur upp núna, af ástæðum sem við munum sjá. 17 00:01:00,250 --> 00:01:02,580 >> Við skulum taka a líta á það sem er verið að fara á í fjölmiðlum 18 00:01:02,580 --> 00:01:05,304 og síðan útskýrt það svolítið hér fyrir okkur tæknilega. 19 00:01:05,304 --> 00:01:07,670 20 00:01:07,670 --> 00:01:11,250 >> Ræðumaður 2: Öryggi sérfræðingar hafa varað við því að alvarlegur galli gat 21 00:01:11,250 --> 00:01:15,650 verið um að hafa áhrif á hundruð milljónir netnotendum heimsins. 22 00:01:15,650 --> 00:01:20,600 Svo hvaða einmitt er villan sem hefur verið kallaður ShellShock, og hvað þýðir það að gera? 23 00:01:20,600 --> 00:01:23,720 24 00:01:23,720 --> 00:01:28,910 Jæja, ShellShock er einnig þekkt sem Bash galla, the hugbúnaður er hetjudáð. 25 00:01:28,910 --> 00:01:33,230 Tölvusnápur nota veira grannskoða varnarlaus kerfi keyra Linux og Unix 26 00:01:33,230 --> 00:01:36,300 stýrikerfi og þá smita þau. 27 00:01:36,300 --> 00:01:38,730 Bash er a stjórn lína skel. 28 00:01:38,730 --> 00:01:43,460 Þetta leyfir notendum mál skipanir um að ráðast áætlanir og aðgerðir innan hugbúnaður 29 00:01:43,460 --> 00:01:45,250 með því að slá inn texta. 30 00:01:45,250 --> 00:01:49,980 Það er oftast notuð af forriturum, og ætti ekki að vera opin fyrir umheiminum, 31 00:01:49,980 --> 00:01:51,590 þó ShellShock breytingar sem. 32 00:01:51,590 --> 00:01:54,160 33 00:01:54,160 --> 00:01:57,910 >> Jæja, worringly, sumir sérfræðingar vara það gæti verið stærri ógn, 34 00:01:57,910 --> 00:02:01,580 því ShellShock leyfir lokið stjórn sýktu vél, 35 00:02:01,580 --> 00:02:06,030 en Heartbleed aðeins leyft tölvusnápur að njósna um tölvur. 36 00:02:06,030 --> 00:02:09,130 Það er svo alvarlegt, að það er verið metinn á 10 af 10 37 00:02:09,130 --> 00:02:11,900 fyrir alvarleika af Landsbókasafni Veikleikar Gagnasafn. 38 00:02:11,900 --> 00:02:15,530 39 00:02:15,530 --> 00:02:20,015 2/3 af öllum vefþjónum eru á hætta, þar á meðal nokkrum Mac tölvum. 40 00:02:20,015 --> 00:02:22,760 41 00:02:22,760 --> 00:02:25,600 Jæja, vertu viss um að plástur kerfi núna. 42 00:02:25,600 --> 00:02:29,330 Einhver hýsa heimasíðu gangi sjúkt stýrikerfi 43 00:02:29,330 --> 00:02:31,800 ætti að taka til aðgerða eins fljótt og auðið er. 44 00:02:31,800 --> 00:02:35,390 Einhver sem hefur efni á það ætti að líta að fylgjast með og vefur umsókn þeirra 45 00:02:35,390 --> 00:02:37,355 eldveggir til að líta út fyrir öllum árásum. 46 00:02:37,355 --> 00:02:39,979 47 00:02:39,979 --> 00:02:41,770 Ræðumaður 3: Versta hlutur sem gæti gerst er 48 00:02:41,770 --> 00:02:45,080 að einhver myndi skrifa kóða sem myndi sjálfkrafa fara og skanna 49 00:02:45,080 --> 00:02:48,280 internetið og hefði áhrif á allar þessar tölvur. 50 00:02:48,280 --> 00:02:50,710 Og þegar þeir gera það vel, það versta sem þeir gætu gert 51 00:02:50,710 --> 00:02:53,300 er bara eyða öllu, eða leggja þær síður niður. 52 00:02:53,300 --> 00:02:55,360 Þannig að við gætum séð skemmdir frá þeim sjónarhóli, 53 00:02:55,360 --> 00:02:58,300 þar sem við myndum hafa illgjarn fólk sem bara ákveða að valda eyðilegging 54 00:02:58,300 --> 00:03:02,534 með því að koma kerfi niður eða eyða skrár og hlutir eins og þessi. 55 00:03:02,534 --> 00:03:05,200 Ræðumaður 2: Sumir segja að þetta er eitt af mest erfitt að mæla 56 00:03:05,200 --> 00:03:08,080 bugs í ár, og það getur tekið vikur eða jafnvel 57 00:03:08,080 --> 00:03:10,820 mánuði til að ákveða endanlega áhrif hennar. 58 00:03:10,820 --> 00:03:12,180 59 00:03:12,180 --> 00:03:15,560 >> Ræðumaður 1: Svo er allt það satt, en fyndna er, nánast allt 60 00:03:15,560 --> 00:03:18,330 á myndmáli sem þú sást bara, nema kannski lyklaborðið, 61 00:03:18,330 --> 00:03:20,930 hefur ekkert að gera með villan neinu tagi. 62 00:03:20,930 --> 00:03:23,960 Netþjónum og vír og svo framvegis, það er tegund af snertistefnu tengt, 63 00:03:23,960 --> 00:03:27,410 en kjarninn er það í raun nokkuð þekki hvað er að gerast hér. 64 00:03:27,410 --> 00:03:30,050 Í raun, láta mig fara inn í CS50 tæki okkar. 65 00:03:30,050 --> 00:03:32,910 Leyfðu mér að fara á undan og hámarka flugstöðinni glugga hér. 66 00:03:32,910 --> 00:03:36,020 Og þið hafið verið að nota þetta, eða embed útgáfa þess, 67 00:03:36,020 --> 00:03:39,460 í gedit til að skrifa forrit, slá skipanir, og svo framvegis, 68 00:03:39,460 --> 00:03:43,690 og þetta er í raun, og hefur verið í margar vikur, Bash, B-A-S-H. 69 00:03:43,690 --> 00:03:46,890 Þetta er Bourne-aftur skel, sem er bara fínt leið til að segja, 70 00:03:46,890 --> 00:03:50,220 þetta er forrit sem hefur blikkandi hvetja, í raun, 71 00:03:50,220 --> 00:03:51,970 sem situr þar að bíða fyrir inntak fyrir þig. 72 00:03:51,970 --> 00:03:53,920 Og það er stjórn lína tengi með sem 73 00:03:53,920 --> 00:03:57,650 þið hafið verið að keyra skipanir og lokum að setja saman og þá stendur 74 00:03:57,650 --> 00:03:58,400 forrit. 75 00:03:58,400 --> 00:04:01,320 >> En Bash er líka forritun tungumál í eftirfarandi skilningi. 76 00:04:01,320 --> 00:04:05,460 Þú veist að það eru skipanir eins CD og LS og einnig clang og aðrir, 77 00:04:05,460 --> 00:04:09,580 en þú getur skilgreint eigin skipanir með því að innleiða þá í Bash. 78 00:04:09,580 --> 00:04:11,420 Nú erum við ekki að fara að fara í smáatriðum 79 00:04:11,420 --> 00:04:16,089 að Bash í forritunarmál, en vita, til dæmis, að á því augnabliki, 80 00:04:16,089 --> 00:04:17,607 það er engin skipun sem kallast "halló." 81 00:04:17,607 --> 00:04:19,440 Þannig að það er hægt að finna í einn af þessum pakka. 82 00:04:19,440 --> 00:04:20,856 Það er ekki sett upp á tölvunni minni. 83 00:04:20,856 --> 00:04:21,870 Spurðu kerfisstjóra. 84 00:04:21,870 --> 00:04:26,030 En ef ég vil það að vera program kallað "halló" í Bash eða hvetja mína, 85 00:04:26,030 --> 00:04:30,810 Ég get í raun notað setningafræði sem er alveg eins og C. Það er ekki alveg það sama, 86 00:04:30,810 --> 00:04:35,020 en það lítur mjög svipað á virka, að vísu vantar einhverjar upplýsingar. 87 00:04:35,020 --> 00:04:38,090 Ekkert virðist gerast, en nú ef ég tegund "halló" 88 00:04:38,090 --> 00:04:40,960 þú getur í raun skrifað á áætlun, ekki á C, ekki í Java, 89 00:04:40,960 --> 00:04:44,280 ekki í öðru forritun tungumál, en í Bash sig. 90 00:04:44,280 --> 00:04:47,630 >> Nú er lykillinn hér, að ég skrifaði nefna að ég vildi gefa þessu nýja stjórn, 91 00:04:47,630 --> 00:04:50,820 og svigum eru einnig táknrænt þetta vera virka. 92 00:04:50,820 --> 00:04:54,010 Sem innskot, er einnig hægt að gera gaman hlutir, og í raun, jafnvel á Mac OS, 93 00:04:54,010 --> 00:04:55,620 þetta er forrit sem heitir Terminal. 94 00:04:55,620 --> 00:04:58,800 Það kemur innbyggður inn í einhver er tölva sem hefur Mac í þessu herbergi, 95 00:04:58,800 --> 00:05:03,640 og þú getur gert svipaða hluti í Mac OS, en þú getur farið meira út fyrir það. 96 00:05:03,640 --> 00:05:07,110 Og þetta er svolítið snertir, en það er góður af gaman. 97 00:05:07,110 --> 00:05:09,715 Ég var minntur morgun, þegar að hugsa þetta í gegnum, 98 00:05:09,715 --> 00:05:13,279 við smá leik ég nota til að spila með eitt af fyrrum TFS CS50 er 99 00:05:13,279 --> 00:05:16,570 þar hvenær hann myndi ganga í burtu frá Lyklaborðið hans með skjá hans opið, 100 00:05:16,570 --> 00:05:23,611 Ég myndi framkvæma skipun eins this-- "segja halló." 101 00:05:23,611 --> 00:05:26,610 Og nú einhver tími sem hann kom aftur til hans hljómborð eftir að ég ruddi skjáinn 102 00:05:26,610 --> 00:05:27,985 og hann vildi setjast niður, reyna að gera sumir vinna, 103 00:05:27,985 --> 00:05:29,250 lista innihald directory-- hans 104 00:05:29,250 --> 00:05:29,510 >> [Hljóð spilun] 105 00:05:29,510 --> 00:05:30,010 >> -Hello. 106 00:05:30,010 --> 00:05:31,621 107 00:05:31,621 --> 00:05:32,120 Halló. 108 00:05:32,120 --> 00:05:35,030 >> Ræðumaður 1: Svo í sanngirni, það var í raun ekki "halló." 109 00:05:35,030 --> 00:05:36,894 Það var yfirleitt eitthvað meira í ætt við that-- 110 00:05:36,894 --> 00:05:37,560 [Hljóð spilun] 111 00:05:37,560 --> 00:05:37,750 -Beep. 112 00:05:37,750 --> 00:05:39,320 Ræðumaður 1: --that ég would-- svo tölvan hans vildi 113 00:05:39,320 --> 00:05:42,170 sver á hann hvenær sem hann í raun og veru settist á lyklaborðinu hans. 114 00:05:42,170 --> 00:05:46,265 Og mjög fljótt mynstrağur hann út ekki að yfirgefa skjár hans opið. 115 00:05:46,265 --> 00:05:48,730 En þetta bendir til þess að einhverskonar af heimskur gaman að þér 116 00:05:48,730 --> 00:05:50,210 getur haft með eitthvað eins og Bash. 117 00:05:50,210 --> 00:05:52,770 En það er lítið meira alvarlegar til að vera viss, en það. 118 00:05:52,770 --> 00:05:57,235 Og í raun er þetta eitt af Hættulegustu og langvarandi galla 119 00:05:57,235 --> 00:05:58,860 sem hefur í raun högg the veröld heimsvísu. 120 00:05:58,860 --> 00:06:02,060 Þessi villa hefur verið í kring fyrir um 20 árum, 121 00:06:02,060 --> 00:06:05,780 og þú munt vera laust í aðeins stund með hlutfallslegt einfaldleiki þess. 122 00:06:05,780 --> 00:06:07,990 >> Þannig að þetta er fulltrúi stjórn að ef þú 123 00:06:07,990 --> 00:06:10,448 eiga Mac, bókstaflega núna þegar þú hefur lokið opinn, 124 00:06:10,448 --> 00:06:12,940 þú getur prófað að slá inn í það forrit sem heitir Terminal. 125 00:06:12,940 --> 00:06:15,410 Terminal er undir Umsóknir Utilities-- 126 00:06:15,410 --> 00:06:18,790 einu sinni, gera Windows-notendur hafa ekki að hafa áhyggjur af þessu tiltekna threat-- 127 00:06:18,790 --> 00:06:22,310 en þá með Macs getur slegið þetta í glugga eins og ég mun gera hér, 128 00:06:22,310 --> 00:06:24,210 og ef þú slærð að í þessu forriti 129 00:06:24,210 --> 00:06:28,830 heitir Terminal, eins og ég mun gera núna, ef þú sérð orðið "viðkvæm" 130 00:06:28,830 --> 00:06:32,200 tölvan er viðkvæm fyrir misnotkun. 131 00:06:32,200 --> 00:06:33,850 >> Nú hvað þýðir það í raun þýtt? 132 00:06:33,850 --> 00:06:35,870 Og þetta er vissulega sumir laglegur brjálaður setningafræði, 133 00:06:35,870 --> 00:06:39,050 en við skulum að minnsta kosti draga úr nokkrar af áhugaverðum þáttum. 134 00:06:39,050 --> 00:06:42,567 Svo er það einhver setningafræði sem lítur smá þekki, að minnsta kosti frá C 135 00:06:42,567 --> 00:06:43,950 og forritun almennt. 136 00:06:43,950 --> 00:06:47,550 Ég sé nokkrar sviga, semikommum, hrokkið axlabönd, og svo, 137 00:06:47,550 --> 00:06:50,820 en það kemur í ljós að þetta heimskur hlutur hér í gulu 138 00:06:50,820 --> 00:06:53,580 er fyrst og fremst fall sem gerir ekki neitt. 139 00:06:53,580 --> 00:06:57,840 The ristill þýðir ekkert gert, og semíkommu þýðir að hætta að gera ekki neitt. 140 00:06:57,840 --> 00:07:00,250 Svo inni af þessum hrokkið axlabönd, sú staðreynd 141 00:07:00,250 --> 00:07:02,440 að ég hef jafn undirrita til vinstri, þetta 142 00:07:02,440 --> 00:07:05,500 er fyrst og fremst að skapa stjórn, eða breytu, 143 00:07:05,500 --> 00:07:09,520 kallað x, og gaf því að gult hluti af kóða þar. 144 00:07:09,520 --> 00:07:14,040 Það gæti verið eitthvað eins og "echo halló "eða" segja píp "eða eitthvað 145 00:07:14,040 --> 00:07:15,120 í ætt við það. 146 00:07:15,120 --> 00:07:17,780 En taka eftir ef augun reika lengra til hægri, 147 00:07:17,780 --> 00:07:22,150 það er meira að þessari línu en bara enda þeim semíkommu. 148 00:07:22,150 --> 00:07:25,160 "Echo viðkvæm," og þá utan að það er jafnvel meira. 149 00:07:25,160 --> 00:07:26,530 Annar semíkommu, bash -c :. 150 00:07:26,530 --> 00:07:28,120 151 00:07:28,120 --> 00:07:34,050 >> Svo löng saga stutt, þessi lína af kóða er 152 00:07:34,050 --> 00:07:36,660 nóg fyrir sannfærandi tölva sem er 153 00:07:36,660 --> 00:07:39,830 viðkvæmt að gera eitthvað sem þú vilt að hún geri, 154 00:07:39,830 --> 00:07:44,290 vegna þess að það er padda í Bash þar jafnvel þótt Bash átti að hætta 155 00:07:44,290 --> 00:07:48,980 lesa línur stjórn hægri þar eftir gulu texta, 156 00:07:48,980 --> 00:07:52,520 fyrir 20-plús ár gamall galla, Bash hefur í raun verið að lesa 157 00:07:52,520 --> 00:07:56,780 umfram það semíkommu og falleg mikið að gera það sem það er sagt. 158 00:07:56,780 --> 00:07:59,070 >> Svo er það vísbendingu um það á endanum? 159 00:07:59,070 --> 00:08:01,340 Ég sagði bara "echo halló" eða "echo viðkvæmt," 160 00:08:01,340 --> 00:08:05,449 en hvað ef þú gerðir eitthvað reyndar illgjarn, eins Rm -Rf *, 161 00:08:05,449 --> 00:08:07,240 sem þú might ekki hafa alltaf slegið áður, 162 00:08:07,240 --> 00:08:08,920 og hreinskilnislega þú sennilega ætti ekki of fljótt, 163 00:08:08,920 --> 00:08:10,700 vegna þess að þú getur gert mikið af skemmdum við það. 164 00:08:10,700 --> 00:08:11,210 Hvers vegna? 165 00:08:11,210 --> 00:08:12,990 RM gerir hvað, að sjálfsögðu? 166 00:08:12,990 --> 00:08:14,270 Fjarlægir. 167 00:08:14,270 --> 00:08:15,930 * Þýðir hvað? 168 00:08:15,930 --> 00:08:16,430 Allt. 169 00:08:16,430 --> 00:08:18,180 Svo er það svokölluð villtur nafnspjald, svo það þýðir 170 00:08:18,180 --> 00:08:20,410 eyða öllu í núverandi möppu. 171 00:08:20,410 --> 00:08:23,379 -r gerist að meina endurkvæma, sem þýðir að ef það sem þú ert að eyða 172 00:08:23,379 --> 00:08:26,420 er skrá og inni þar er aðrar skrár og aðrar möppur, 173 00:08:26,420 --> 00:08:28,950 endurkvæmt kafa í það og eyða öllu um það. 174 00:08:28,950 --> 00:08:31,040 Og -f er það versta af þeim öllum. 175 00:08:31,040 --> 00:08:32,580 Einhver veit hvað -f þýðir hér? 176 00:08:32,580 --> 00:08:33,690 177 00:08:33,690 --> 00:08:34,360 Force. 178 00:08:34,360 --> 00:08:37,830 Svo valdi leið, jafnvel ef þetta er slæm hugmynd, 179 00:08:37,830 --> 00:08:40,939 gera það án þess að vekur mig til frekari staðfestingar. 180 00:08:40,939 --> 00:08:43,230 Svo, þú veist, hlæja við á þetta, en hreinskilnislega, ég líklega 181 00:08:43,230 --> 00:08:44,972 slá þetta mörgum sinnum á dag, vegna þess að veruleika 182 00:08:44,972 --> 00:08:47,210 er það fljótlegasta leiðin til að eyða a heild búnt af efni. 183 00:08:47,210 --> 00:08:48,590 En jafnvel ég hef gert nokkrar skemmdir. 184 00:08:48,590 --> 00:08:53,100 >> En ef þú varst að plata tölvu í að skilgreina nokkur heimskur breytu 185 00:08:53,100 --> 00:08:56,810 eða virka kallast x, en þá svikull tölvuna í framkvæmd 186 00:08:56,810 --> 00:09:00,030 út fyrir mörk sem virka, umfram það semíkommu, 187 00:09:00,030 --> 00:09:04,430 þú gætir örugglega bragð tölvu í framkvæmd eitthvað eins rm -Rf 188 00:09:04,430 --> 00:09:07,810 eða Email stjórn eða Afrita stjórn. 189 00:09:07,810 --> 00:09:11,400 Nokkuð bókstaflega hægt að gera með tölva, hvort sem það er að eyða skrá, 190 00:09:11,400 --> 00:09:15,350 búa skrár, ruslpóstur einhvern, ráðast sumir framreiðslumaður lítillega, 191 00:09:15,350 --> 00:09:17,190 ef þú getur tjáð það með stjórn, þú 192 00:09:17,190 --> 00:09:19,120 getur bragð tölva í að gera það. 193 00:09:19,120 --> 00:09:21,510 >> Nú er það dæmi um hvernig þú gætir gert þetta? 194 00:09:21,510 --> 00:09:24,300 Jæja, það er a einhver fjöldi af tölvum á internetið gangi Bash. 195 00:09:24,300 --> 00:09:26,390 Allar okkur Mac notendur eru meðal þeirra. 196 00:09:26,390 --> 00:09:30,390 A einhver fjöldi af Linux netþjónum eru meðal þá eins og heilbrigður, og Unix netþjóna. 197 00:09:30,390 --> 00:09:32,630 Windows fær aftur tiltölulega í friði 198 00:09:32,630 --> 00:09:34,590 nema þú hafir sett upp sérstakur hugbúnaður. 199 00:09:34,590 --> 00:09:37,130 Nú a einhver fjöldi af netþjónum, fyrir dæmi, hlaupa vefur framreiðslumaður, 200 00:09:37,130 --> 00:09:39,840 og í raun Linux er kannski Vinsælasta stýrikerfi 201 00:09:39,840 --> 00:09:43,060 að keyra á tölvum á internetinu sem eru að þjóna upp vefsíður. 202 00:09:43,060 --> 00:09:44,910 Nú eins og við munum sjá síðar í önn, þegar 203 00:09:44,910 --> 00:09:48,470 þú sendir beiðni frá browser-- Chrome, 204 00:09:48,470 --> 00:09:50,790 Internet Explorer, whatever-- til a fjarlægur framreiðslumaður, 205 00:09:50,790 --> 00:09:53,730 það kemur í ljós að jafnvel þótt þú gafst bara www.example.com, 206 00:09:53,730 --> 00:09:59,590 Vafrinn þinn er að senda skilaboð það er lítið meira Bogagöng, eins og þetta. 207 00:09:59,590 --> 00:10:01,239 >> En eftir a lítill eitthvað skrítið. 208 00:10:01,239 --> 00:10:03,030 Fyrstu tvær línur Ég hef aldrei séð áður, 209 00:10:03,030 --> 00:10:04,904 en þeir líta ekki sérstaklega ógnandi. 210 00:10:04,904 --> 00:10:08,030 En taka það sem ég hef stolið fyrir þriðju línu hér. 211 00:10:08,030 --> 00:10:13,390 Ef slæmur voru að senda skilaboð svona úr tölvunni hans eða hennar 212 00:10:13,390 --> 00:10:17,270 viðkvæmt Mac eða viðkvæm Linux miðlara, 213 00:10:17,270 --> 00:10:21,580 það fyndna er að bash, að einfaldur lítill stjórn hvetja, 214 00:10:21,580 --> 00:10:27,450 er omnipresent og er oft notaður til að í raun framkvæma 215 00:10:27,450 --> 00:10:30,020 innihald a skilaboð sem hún fær. 216 00:10:30,020 --> 00:10:33,490 Og eftir að rökfræði, þú getur bragð vefþjón, því 217 00:10:33,490 --> 00:10:36,370 með því að senda eitthvað svona User-Agent, sem yfirleitt 218 00:10:36,370 --> 00:10:38,300 er ætlað að segja sem nafn í vafranum þínum. 219 00:10:38,300 --> 00:10:42,420 User-Agent Króm, User-Agent Internet Landkönnuður, User-Agent Firefox, þetta 220 00:10:42,420 --> 00:10:44,590 er bara vafrinn þinn er leið að skilgreina sig. 221 00:10:44,590 --> 00:10:46,605 En ef slæmur mjög snjall segir mm-mm, ég er 222 00:10:46,605 --> 00:10:47,930 ekki að fara að segja þér hvað vafrinn minn er, 223 00:10:47,930 --> 00:10:50,888 Ég stað að fara að senda þér þetta Cryptic-útlit hlutur með Rm -Rf 224 00:10:50,888 --> 00:10:55,840 * Í það, getur þú bókstaflega bragð a viðkvæm vefur framreiðslumaður á internetinu 225 00:10:55,840 --> 00:10:59,055 í framkvæmd nákvæmlega að í þar til að eyða öllum skrám. 226 00:10:59,055 --> 00:11:00,930 Og hreinskilnislega, það er ekki jafnvel verstu henni. 227 00:11:00,930 --> 00:11:01,763 Þú getur gert hvað sem er. 228 00:11:01,763 --> 00:11:04,480 Þú gætir byrjað að úthluta afneitun af árás þjónustu 229 00:11:04,480 --> 00:11:07,030 ef þú sendir þessi skilaboð til heil bunches af vefþjónum 230 00:11:07,030 --> 00:11:10,256 og þá hafði þeim öllum niður, til dæmi, á Harvard.edu netþjóna, 231 00:11:10,256 --> 00:11:12,130 og þú getur flokkað af Bang Heck út af þeim 232 00:11:12,130 --> 00:11:15,490 með net umferð sem var annars af stað með þetta slæmur strákur. 233 00:11:15,490 --> 00:11:18,760 >> Svo, löng saga stutt, næstum í þessu herbergi sem á Mac allir 234 00:11:18,760 --> 00:11:20,240 er viðkvæmt fyrir þessu. 235 00:11:20,240 --> 00:11:24,100 Silfur fóður er að ef þú ert keyra vefþjón á fartölvuna þína, 236 00:11:24,100 --> 00:11:27,780 og nema þú hafir í raun stillt það að leyfa eitthvað eins SSH inn í það, 237 00:11:27,780 --> 00:11:28,670 þú ert í raun öruggur. 238 00:11:28,670 --> 00:11:31,710 Það er viðkvæmt, en það er engin einn að reyna að komast inn í fartölvuna þína, 239 00:11:31,710 --> 00:11:33,290 svo þú getur konar treyst. 240 00:11:33,290 --> 00:11:36,210 Hins vegar, Apple mun brátt að uppfæra a festa fyrir þetta. 241 00:11:36,210 --> 00:11:39,660 The veröld af Linux hefur þegar gefið út fjölda fastur fyrir Fedora og Ubuntu 242 00:11:39,660 --> 00:11:43,790 og aðrar útgáfur af Linux, og reyndar ef þú keyrir uppfærslu 50 í tækið, 243 00:11:43,790 --> 00:11:45,930 jafnvel að of vilja vera uppfærð og leiðrétt. 244 00:11:45,930 --> 00:11:47,764 En það líka er ekki raunverulega verið varnarlaus, 245 00:11:47,764 --> 00:11:49,804 því nema þú hafir tinkered með tækið 246 00:11:49,804 --> 00:11:52,770 og gerði fartölvu opinberlega aðgengileg á internetinu, sem er ekki 247 00:11:52,770 --> 00:11:54,910 sjálfgefið, hefur þú reyndar verið fínt því 248 00:11:54,910 --> 00:11:56,890 af firewalling og aðrar aðferðir. 249 00:11:56,890 --> 00:12:01,000 >> En það er sérstakt dæmi um galla að við höfum búið til fyrir bókstaflega 20 250 00:12:01,000 --> 00:12:04,050 ár, og hver veit nema að einhver allan þennan tíma hefur vitað um það? 251 00:12:04,050 --> 00:12:06,300 Og í raun er þetta ein af grundvallar áskoranir 252 00:12:06,300 --> 00:12:08,690 að við munum sjá síðar í önn um öryggi, 253 00:12:08,690 --> 00:12:13,020 er það bara eins og í hinum raunverulega heimi, góður krakkar eru í óhag. 254 00:12:13,020 --> 00:12:16,500 Til að halda slæmur krakkar út, verðum við að ganga úr skugga um að sérhver hurðin er læst, 255 00:12:16,500 --> 00:12:20,340 að sérhver gluggi er öruggt, að hvert komustað inn á heimili 256 00:12:20,340 --> 00:12:21,980 er öruggt að halda slæmur krakkar út. 257 00:12:21,980 --> 00:12:26,870 En hvað þýðir slæmur strákur hefur að gera til raunverulega málamiðlun þinn heimili 258 00:12:26,870 --> 00:12:28,200 og stela frá þér? 259 00:12:28,200 --> 00:12:32,574 Hann eða hún hefur bara að finna einn ólæstum dyr, einn brotinn gluggi eða eitthvað 260 00:12:32,574 --> 00:12:35,240 meðfram þeim línum, og það er sama í öryggi tölvunnar. 261 00:12:35,240 --> 00:12:37,660 Við getum skrifað milljón línur af forritun kóða 262 00:12:37,660 --> 00:12:40,570 og eyða hundruð eða þúsundir klukkustundir að reyna að fá það rétt, 263 00:12:40,570 --> 00:12:43,370 en ef þú gerir bara einn mistök í réttar, 264 00:12:43,370 --> 00:12:47,030 þú getur sett allt kerfið og örugglega í þessu tilfelli, allt Netið 265 00:12:47,030 --> 00:12:48,660 og heimurinn í hættu. 266 00:12:48,660 --> 00:12:51,950 >> Svo ef þú vilt læra meira um þetta, fara á þessa slóð hérna. 267 00:12:51,950 --> 00:12:54,450 Það er engin þörf fyrir aðgerð kvöld nema þú sért 268 00:12:54,450 --> 00:12:57,116 meðal þeirra öruggari að hafa verið að keyra eigin þinn vefur 269 00:12:57,116 --> 00:12:59,810 miðlara, en í því tilviki sem þú ættir, í raun, uppfæra hugbúnaðinn. 270 00:12:59,810 --> 00:13:03,244 >> Og þetta er of titilinn ræðu, og nú grein, 271 00:13:03,244 --> 00:13:05,410 að við höfum tengt á Vefsíða Auðvitað er í dag. 272 00:13:05,410 --> 00:13:07,600 Það var eftir manni heitir Ken Thompson, sem 273 00:13:07,600 --> 00:13:10,120 var samþykkt mjög frægur verðlaun í tölvunarfræði, 274 00:13:10,120 --> 00:13:13,495 og hann gaf þetta mál nokkur ár síðan, fyrst og fremst um þetta sama efni. 275 00:13:13,495 --> 00:13:18,250 276 00:13:18,250 --> 00:13:20,520 Asking fólkinu spurningin, ættir þú virkilega 277 00:13:20,520 --> 00:13:23,480 traust, að lokum, hugbúnaður sem þú hefur verið gefið? 278 00:13:23,480 --> 00:13:26,100 Til dæmis, við höfum öll verið að skrifa forrit, 279 00:13:26,100 --> 00:13:27,820 og við höfum verið að setja saman þá með Clang. 280 00:13:27,820 --> 00:13:31,830 Og þekkingu þína, hefur þú skrifað einhver forrit fyrir CS50 þar sem það er 281 00:13:31,830 --> 00:13:35,310 a bak dyrnar konar, there 'a vegur að a slæmur strákur, ef keyra forritið þitt, 282 00:13:35,310 --> 00:13:37,410 gæti tekið yfir tölvuna þína? 283 00:13:37,410 --> 00:13:38,310 Sennilega ekki, ekki satt? 284 00:13:38,310 --> 00:13:40,180 Mario og gráðugur, og Credit. 285 00:13:40,180 --> 00:13:41,680 Þetta eru allt mjög lítil forrit. 286 00:13:41,680 --> 00:13:43,910 Þú vilt verða að vera nokkuð slæmt ef þú í raun 287 00:13:43,910 --> 00:13:47,310 heill tölvan varnarlaus eftir að skrifa 10 eða 20 línur af kóða, 288 00:13:47,310 --> 00:13:49,690 eða að minnsta kosti ókunnugt um nokkur af öryggi flækjur. 289 00:13:49,690 --> 00:13:52,023 Nú er ég að segja að facetiously, en við erum að fara að sjá í dag 290 00:13:52,023 --> 00:13:54,600 og í þessari viku það er í raun virkilega, virkilega auðvelt 291 00:13:54,600 --> 00:13:57,980 að vera slæmt og gera jafnvel stutt forrit varnarlaus. 292 00:13:57,980 --> 00:14:02,880 >> En nú, að minnsta kosti, að átta sig á að spurningin sé spurt hér 293 00:14:02,880 --> 00:14:04,850 er um Clang í þýðanda. 294 00:14:04,850 --> 00:14:08,360 Hvers vegna höfum við verið að treysta Clang á undanförnum tveimur eða þremur vikum? 295 00:14:08,360 --> 00:14:12,650 Hver er að segja að sá sem skrifaði Clang ekki hafa "ef" ástand þarna 296 00:14:12,650 --> 00:14:17,680 sem í raun sprautað nokkrum núllum og sjálfur í hvert forrit það safnar 297 00:14:17,680 --> 00:14:21,180 sem myndi láta hann eða aðgangur hennar tölvan þín þegar þú ert sofandi 298 00:14:21,180 --> 00:14:23,580 og laptop lokið er opið og tölvan þín er í gangi? 299 00:14:23,580 --> 00:14:24,080 Ekki satt? 300 00:14:24,080 --> 00:14:28,350 Við höfum þetta svona heiður kerfi hægri nú þar sem við treystum því að Clang er legit. 301 00:14:28,350 --> 00:14:30,000 Þú treystir því að tækið er legit. 302 00:14:30,000 --> 00:14:34,430 Þú treystir því að bókstaflega hvert forrit á Mac eða PC er áreiðanleg. 303 00:14:34,430 --> 00:14:37,510 Og eins og þetta einfalt villa gefur til kynna, jafnvel ef það er ekki illgjarn, 304 00:14:37,510 --> 00:14:40,580 það er alls ekki líklegri til að vera raunin. 305 00:14:40,580 --> 00:14:42,350 >> Svo þú ættir að vera hræddur eins og helvíti. 306 00:14:42,350 --> 00:14:45,560 Frankly, það er engin einföld lausn á þessu annað 307 00:14:45,560 --> 00:14:48,185 en einhverskonar félagslegum vitund af vaxandi margbreytileika 308 00:14:48,185 --> 00:14:50,310 að við erum að byggja ofan tölvukerfa okkar, 309 00:14:50,310 --> 00:14:53,740 og hvernig sífellt viðkvæmari við gæti mjög vel verið. 310 00:14:53,740 --> 00:14:55,570 >> Nú með því að segja, Breakout. 311 00:14:55,570 --> 00:14:59,889 Svo Brot er vandamál setja þrjá og Brot er leikur frá fyrra 312 00:14:59,889 --> 00:15:02,180 að þú gætir muna, en fyrir okkur í vandamál setja þrjú, 313 00:15:02,180 --> 00:15:04,450 það gerir okkur kleift að taka hlutir aftur upp hak 314 00:15:04,450 --> 00:15:08,880 þannig að þegar við erum að skrifa forrit, jafnvel í Terminal glugga eins og þetta, 315 00:15:08,880 --> 00:15:14,670 getum við í raun að keyra, að lokum, myndræna forrit ekki 316 00:15:14,670 --> 00:15:17,800 ólíkt þeim sem við höfðum aðgang að í grunni. 317 00:15:17,800 --> 00:15:20,910 Svo er þetta starfsfólk er framkvæmd Brot, 318 00:15:20,910 --> 00:15:23,930 sem er bara þessi múrsteinn-brot leikur, sem þú færa paddle þinn aftur 319 00:15:23,930 --> 00:15:27,590 og framvegis, og þú högg the bolti gegn þeim lit múrsteinn upp ofan. 320 00:15:27,590 --> 00:15:30,020 Þannig að þetta er að koma okkur konar til baka þar 321 00:15:30,020 --> 00:15:33,180 við gátum til að vera mjög fljótt með grunni, og nú með C, 322 00:15:33,180 --> 00:15:35,800 framkvæmd okkar eigin myndræna notandi tengi. 323 00:15:35,800 --> 00:15:38,960 >> En meira en það, þetta Heimadæmi táknar fyrsta 324 00:15:38,960 --> 00:15:41,000 þar sem við erum að gefa þú fullt af kóða. 325 00:15:41,000 --> 00:15:43,940 Og í raun, ég boða skýr athygli á þessu, vegna þess að sérstaklega 326 00:15:43,940 --> 00:15:47,090 fyrir þá sem minna þægilegt, þetta Heimadæmi, að minnsta kosti við fyrstu sýn, 327 00:15:47,090 --> 00:15:49,170 er að fara að líða eins og Við höfum tekið það upp hak. 328 00:15:49,170 --> 00:15:51,540 Vegna þess að við höfum gefið þér, fyrir sumir af the leita 329 00:15:51,540 --> 00:15:54,930 og flokkun vandamál í pset, fullt af kóða sem við skrifaði, 330 00:15:54,930 --> 00:15:56,680 og a par af athugasemdum að segja "að gera," 331 00:15:56,680 --> 00:15:58,221 þar sem þú þarft að fylla út í eyðurnar. 332 00:15:58,221 --> 00:16:00,020 Svo ekki of skelfilegur, en það er í fyrsta skipti 333 00:16:00,020 --> 00:16:03,370 við erum fötlun þér kóðann sem þú þarft að fyrst að lesa, skilja, og þá bæta við 334 00:16:03,370 --> 00:16:04,290 og ljúka henni. 335 00:16:04,290 --> 00:16:05,940 >> Og þá með Brot, við erum að fara að gera slíkt hið sama, 336 00:16:05,940 --> 00:16:08,740 gefa þér nokkrar tugi fleiri línur af kóða sem hreinskilnislega, gefa þér 337 00:16:08,740 --> 00:16:11,490 a einhver fjöldi af ramma fyrir leikurinn heldur stoppa stutt 338 00:16:11,490 --> 00:16:14,304 að innleiða múrsteinn og boltinn og paddle, 339 00:16:14,304 --> 00:16:15,970 en við gerum framkvæma nokkrar aðrar aðgerðir. 340 00:16:15,970 --> 00:16:18,280 Og jafnvel að við fyrstu sýn, aftur, sérstaklega ef minna þægilegt, 341 00:16:18,280 --> 00:16:21,480 kann að virðast sérlega erfitt og þú heldur að það er svo margir nýir aðgerðir 342 00:16:21,480 --> 00:16:24,070 þú þarft að vefja huganum kring, og það er satt. 343 00:16:24,070 --> 00:16:26,281 En hafðu í huga, það er alveg eins og grunni. 344 00:16:26,281 --> 00:16:28,780 Stuðlar ert þú ekki að nota alla The ráðgáta stykki í grunni. 345 00:16:28,780 --> 00:16:31,120 Stuðlar ert þú ekki sama að vefja hugur þinn um alla þá 346 00:16:31,120 --> 00:16:33,617 vegna þess að allt það tók var fljótur litið að skilja, ó, 347 00:16:33,617 --> 00:16:35,450 það er það sem ég get gert með því ráðgáta stykki. 348 00:16:35,450 --> 00:16:38,260 Og reyndar, í vandamál setja 3. sérstakur, munum við benda þér 349 00:16:38,260 --> 00:16:41,370 á gögnum sem mun kynna ykkur í nýjum störfum, 350 00:16:41,370 --> 00:16:43,570 og að lokum forritun býr að nota. 351 00:16:43,570 --> 00:16:47,610 Aðstæður, lykkjur, breytur og aðgerðir 352 00:16:47,610 --> 00:16:50,720 mun vera eins og það sem við höfum séð hingað til. 353 00:16:50,720 --> 00:16:53,560 >> Svo reyndar, hvað við munum gefa þú er nokkur sýnishorn númer sem 354 00:16:53,560 --> 00:16:56,110 gerir þér kleift að búa til glugga sem lítur ekki ósvipað þessu, 355 00:16:56,110 --> 00:16:59,540 og að lokum snúa það inn í eitthvað alveg eins og þetta. 356 00:16:59,540 --> 00:17:02,250 Þannig að nýta CS50, ræða skrifstofutíma og fleira, 357 00:17:02,250 --> 00:17:05,290 og taka þægindi í þeirri staðreynd að upphæð af kóða sem þú þarft til að skrifa 358 00:17:05,290 --> 00:17:06,760 er í raun ekki allt sem mikið. 359 00:17:06,760 --> 00:17:10,359 Fyrsta áskorunin er bara að aðlagast sjálfur að einhverju kóða við höfum skrifað. 360 00:17:10,359 --> 00:17:11,450 361 00:17:11,450 --> 00:17:15,810 >> Einhverjar spurningar um pset3, ShellShock, eða annað? 362 00:17:15,810 --> 00:17:19,226 >> Áhorfendur: Það virtist eins og fara í gegnum með Brot 363 00:17:19,226 --> 00:17:22,154 að kóðinn er næstum hlutbundin stíl, 364 00:17:22,154 --> 00:17:24,675 en ég hélt að C var hlutbundin forrit. 365 00:17:24,675 --> 00:17:26,050 Ræðumaður 1: Frábært spurning. 366 00:17:26,050 --> 00:17:28,258 Svo í að leita í gegnum dreifingu kóða, kóðinn 367 00:17:28,258 --> 00:17:30,180 við skrifuðum fyrir pset3, fyrir þá sem þekkja, það 368 00:17:30,180 --> 00:17:32,230 lítur út eins og það er lítið hlutbundin. 369 00:17:32,230 --> 00:17:33,800 Stutta svarið er, það er. 370 00:17:33,800 --> 00:17:38,130 Það er að samræma hvernig þér gæti gert hlutbundin kóðann með 371 00:17:38,130 --> 00:17:41,850 tungumál eins og C, en það er enn að lokum málsmeðferð. 372 00:17:41,850 --> 00:17:44,900 Það eru engar aðferðir inni breytur, eins og þú munt sjá. 373 00:17:44,900 --> 00:17:46,180 En það minnir á það. 374 00:17:46,180 --> 00:17:48,780 Og við munum sjá að lögun aftur þegar við komum til PHP og Javascript 375 00:17:48,780 --> 00:17:49,946 undir lok annarinnar. 376 00:17:49,946 --> 00:17:53,667 En nú, hugsa um það sem vísbending um hvað er að koma. 377 00:17:53,667 --> 00:17:54,250 Góð spurning. 378 00:17:54,250 --> 00:17:56,051 379 00:17:56,051 --> 00:17:56,550 Allt í lagi. 380 00:17:56,550 --> 00:17:59,730 Svo Mergesort var hvernig við vinstri hluti síðasta skipti. 381 00:17:59,730 --> 00:18:03,250 Og sameina tegund var kaldur í vit að það var svo miklu hraðar, 382 00:18:03,250 --> 00:18:07,100 að minnsta kosti á grundvelli cursory prófunum við gerðum í síðustu viku, en, segjum, kúla 383 00:18:07,100 --> 00:18:08,710 tagi, val tagi, insertion sort. 384 00:18:08,710 --> 00:18:11,780 Og hvað var snyrtilegur líka bara hversu succinctly og hreinlegur 385 00:18:11,780 --> 00:18:12,810 þú getur tjáð það. 386 00:18:12,810 --> 00:18:15,840 Og hvað gerði við segja að það væri efri bundið á hlaupandi tíma á sameiningu 387 00:18:15,840 --> 00:18:16,340 raða? 388 00:18:16,340 --> 00:18:17,633 389 00:18:17,633 --> 00:18:18,495 Já? 390 00:18:18,495 --> 00:18:19,360 >> Áhorfendur: n log n? 391 00:18:19,360 --> 00:18:20,819 >> Ræðumaður 1: n log n, ekki satt. n log n. 392 00:18:20,819 --> 00:18:23,776 Og við munum koma aftur til það sem í raun þýðir eða þar sem kemur frá, 393 00:18:23,776 --> 00:18:25,570 en þetta var betra en hvaða gangi tíma 394 00:18:25,570 --> 00:18:28,440 sem við sáum fyrir kúla val og insertion sort? 395 00:18:28,440 --> 00:18:30,610 Svo n veldi. n veldi er stærri en þetta, 396 00:18:30,610 --> 00:18:34,650 og jafnvel ef það er ekki alveg augljóst, vita að Log n er minni en n, 397 00:18:34,650 --> 00:18:36,910 þannig að ef þú gerir n sinnum eitthvað minni en n, 398 00:18:36,910 --> 00:18:38,680 það er að fara að vera minna en n veldi. 399 00:18:38,680 --> 00:18:40,130 Það er hluti af innsæi þar. 400 00:18:40,130 --> 00:18:42,190 En við greitt verð fyrir þetta. 401 00:18:42,190 --> 00:18:47,000 Það var hraðari, en þema sem byrjaði að koma í síðustu viku var þetta tradeoff. 402 00:18:47,000 --> 00:18:49,804 Ég fékk betri árangur tími vitur, en það 403 00:18:49,804 --> 00:18:52,470 gerði ég að eyða á öðrum vegar, í því skyni að ná því? 404 00:18:52,470 --> 00:18:53,591 >> Áhorfendur: Minni. 405 00:18:53,591 --> 00:18:54,465 Ræðumaður 1: Segja aftur? 406 00:18:54,465 --> 00:18:55,173 Áhorfendur: Minni. 407 00:18:55,173 --> 00:18:57,040 Ræðumaður 1: Minni, eða rúm almennt. 408 00:18:57,040 --> 00:18:59,040 Og það var ekki frábær augljóst með mönnum okkar, 409 00:18:59,040 --> 00:19:02,240 en muna að sjálfboðaliðum okkar voru stepping áfram og stepping 410 00:19:02,240 --> 00:19:04,780 aftur eins og það er fylki hér, og eins og það er 411 00:19:04,780 --> 00:19:07,130 annað array hér að þeir gætu notað, vegna þess að við 412 00:19:07,130 --> 00:19:09,080 þörf einhvers staðar að sameinast þeim gott fólk. 413 00:19:09,080 --> 00:19:11,480 Við gátum ekki bara skipta á þeim á sínum stað. 414 00:19:11,480 --> 00:19:13,800 Svo Mergesort skiptimynt er meira pláss, sem 415 00:19:13,800 --> 00:19:15,620 við þurftum engan með önnur reiknirit 416 00:19:15,620 --> 00:19:17,410 en kosti er að það er miklu hraðar. 417 00:19:17,410 --> 00:19:20,780 Og hreinskilnislega, í alvöru heiminum rúm þessir days-- RAM, harður diskur space-- 418 00:19:20,780 --> 00:19:25,030 er tiltölulega ódýr, og svo er það ekki endilega að vera slæmt. 419 00:19:25,030 --> 00:19:28,320 >> Svo skulum taka a fljótur líta, lítið meira skipulega, hvað við gerðum 420 00:19:28,320 --> 00:19:30,220 og hvers vegna ég sagði að það var n log n. 421 00:19:30,220 --> 00:19:33,260 Svo hér eru átta tölur og átta sjálfboðaliðar við höfðum síðast. 422 00:19:33,260 --> 00:19:35,718 Og það fyrsta sem Sameina Raða sagði okkur að gera var hvað? 423 00:19:35,718 --> 00:19:37,010 424 00:19:37,010 --> 00:19:38,010 Áhorfendur: Divide í tvennt. 425 00:19:38,010 --> 00:19:38,663 Ræðumaður 1: Segja aftur? 426 00:19:38,663 --> 00:19:39,650 Áhorfendur: Divide í tvennt. 427 00:19:39,650 --> 00:19:40,610 Ræðumaður 1: Skiptu í tvennt, rétt. 428 00:19:40,610 --> 00:19:42,818 Þetta er mjög minnir á símaskrá, að skipta 429 00:19:42,818 --> 00:19:44,220 og sigra almennt. 430 00:19:44,220 --> 00:19:45,640 Svo litum við á vinstri helming. 431 00:19:45,640 --> 00:19:48,700 Og síðan einu sinni og ég sagði, flokka vinstri helminginn af þeim þáttum, 432 00:19:48,700 --> 00:19:49,690 hvað gerði við segja næst? 433 00:19:49,690 --> 00:19:51,210 434 00:19:51,210 --> 00:19:54,860 Raða vinstri helminginn af vinstri helmingur, sem gerði okkur kleift að, 435 00:19:54,860 --> 00:19:57,570 eftir að skipta í tvennt, leggja áherslu á fjögur og tvö. 436 00:19:57,570 --> 00:20:01,280 >> Hvernig heldur þú að raða lista núna, í gulur, stærð tvö, með Mergesort? 437 00:20:01,280 --> 00:20:02,330 438 00:20:02,330 --> 00:20:04,580 Jæja skipta því í tvennt, og raða vinstri helming. 439 00:20:04,580 --> 00:20:07,100 Og þetta var þar sem hlutirnir fékk smá heimskulegt stuttlega. 440 00:20:07,100 --> 00:20:10,720 Hvernig heldur þú að raða lista sem er á stærð eitt, eins og þetta númer fjögur hér? 441 00:20:10,720 --> 00:20:12,330 442 00:20:12,330 --> 00:20:13,210 Það er raðað. 443 00:20:13,210 --> 00:20:14,200 Þú ert búinn. 444 00:20:14,200 --> 00:20:17,300 >> En þá hvernig þú flokkað lista yfir stærð eitt þegar það er númer tvö? 445 00:20:17,300 --> 00:20:21,640 Jæja, sama, en nú hvað var Þriðja og mikilvægt skref í Mergesort? 446 00:20:21,640 --> 00:20:24,020 Þú þurfti að sameina vinstri helmingur og hægri helminginn. 447 00:20:24,020 --> 00:20:26,580 Og þegar við gerðum það, leit við Á fjórum, leit við á tvo. 448 00:20:26,580 --> 00:20:28,750 Við ákváðum allt í lagi, augljóslega tveir kemur fyrst, 449 00:20:28,750 --> 00:20:31,840 svo við að setja tvö í sínum stað, eftir fjóra. 450 00:20:31,840 --> 00:20:35,010 Og nú þú ert að eins konar baka og þetta er tegund af eiginleika 451 00:20:35,010 --> 00:20:37,570 af reiknirit eins Sameina Raða, baka í minni. 452 00:20:37,570 --> 00:20:40,240 Hvað var næsta lína af sögunni? 453 00:20:40,240 --> 00:20:41,780 Hvað ætti ég að vera að einbeita sér næst? 454 00:20:41,780 --> 00:20:43,110 455 00:20:43,110 --> 00:20:47,350 The hægri helminginn af vinstri helmingur, Sem er sex og átta. 456 00:20:47,350 --> 00:20:50,320 >> Svo láta mig stíga bara í gegnum þetta án belaboring benda of mikið. 457 00:20:50,320 --> 00:20:53,330 Sex og átta, þá er sex raðað, átta er raðað. 458 00:20:53,330 --> 00:20:57,190 Sameina þau saman eins og þessi, og nú er næsta stóra skref 459 00:20:57,190 --> 00:21:00,990 er, að sjálfsögðu, að raða rétt helming frá fyrsta skrefið í þessa reiknirit. 460 00:21:00,990 --> 00:21:02,870 Þannig að við leggjum áherslu á einn, þrír, sjö, fimm. 461 00:21:02,870 --> 00:21:04,540 Við leggjum áherslu þá á vinstri helming. 462 00:21:04,540 --> 00:21:09,400 The vinstri helminginn af því, hægri helminginn af það, og þá sameinast í eitt og þrjú. 463 00:21:09,400 --> 00:21:13,100 Þá hægri helminginn, þá að vinstri helmingi um það, þá hægri helminginn af því. 464 00:21:13,100 --> 00:21:15,985 Sameina það í, og nú hvað skref áfram? 465 00:21:15,985 --> 00:21:18,040 466 00:21:18,040 --> 00:21:22,460 Sameina stóru vinstri helming og stór hægri helminginn, svo einn fer niður þarna, 467 00:21:22,460 --> 00:21:27,330 þá tvo, þá þrjár, þá fjórar, þá fimm, þá sex, þá sjö, þá átta. 468 00:21:27,330 --> 00:21:31,990 >> Svo nú hvers vegna er þetta að lokum að sýna, sérstaklega ef n og logariþmi meira 469 00:21:31,990 --> 00:21:35,487 almennt frekar flýja þig, að minnsta kosti í minnum? 470 00:21:35,487 --> 00:21:37,070 Jæja, eftir hæð þetta. 471 00:21:37,070 --> 00:21:41,230 Við höfðum átta þætti, og við skipt því með tveimur, og tvær, með tveimur. 472 00:21:41,230 --> 00:21:44,590 Svo skráðu þig stöð tvö af átta gefur okkur þrjú. 473 00:21:44,590 --> 00:21:45,640 474 00:21:45,640 --> 00:21:48,540 Og treystu mér á að ef svolítið óljós um þetta. 475 00:21:48,540 --> 00:21:54,710 En log stöð tvö af átta er þrír, þannig að við höfum gert þrjú lög af samruna. 476 00:21:54,710 --> 00:21:57,170 Og þegar við sameinuð þætti, hversu margir þættir 477 00:21:57,170 --> 00:21:58,950 gerði við líta á um hvert þessara lína? 478 00:21:58,950 --> 00:22:00,212 479 00:22:00,212 --> 00:22:01,437 Alls n, rétt? 480 00:22:01,437 --> 00:22:04,020 Vegna þess að sameina efri línuna, jafnvel þótt við gerðum það piecemeal, 481 00:22:04,020 --> 00:22:05,990 Við snert lokum hvert númer einu sinni. 482 00:22:05,990 --> 00:22:09,054 Og í annarri röð, til að sameinast þær lista af stærð tvö, 483 00:22:09,054 --> 00:22:10,470 við þurftum að snerta hvert frumefni einu sinni. 484 00:22:10,470 --> 00:22:12,690 Og þá er hér í raun greinilega í síðustu röðinni, 485 00:22:12,690 --> 00:22:15,430 við þurftum að snerta hver þeirra þættir einu sinni, en aðeins einu sinni, 486 00:22:15,430 --> 00:22:18,400 svo hér liggur, þá n þig n okkar. 487 00:22:18,400 --> 00:22:21,780 >> Og nú bara til að gera hlutina svolítið formlegri fyrir aðeins augnablik, ef þér 488 00:22:21,780 --> 00:22:24,260 voru að nú greina þetta í eins konar hærra stigi 489 00:22:24,260 --> 00:22:28,340 og reyna að ákveða, vel hvernig gætir þú fara um að tjá 490 00:22:28,340 --> 00:22:31,780 Keyrslutíminn þessarar reiknirit bara með því að horfa á það og ekki 491 00:22:31,780 --> 00:22:33,590 með því að nota háttuð dæmi? 492 00:22:33,590 --> 00:22:36,590 Jæja, hvernig mikill tími viltu segja stíga svona gular myndi taka, 493 00:22:36,590 --> 00:22:37,173 ef n <2 aftur? 494 00:22:37,173 --> 00:22:38,840 495 00:22:38,840 --> 00:22:39,830 Það er stór O hvað? 496 00:22:39,830 --> 00:22:41,450 497 00:22:41,450 --> 00:22:44,540 Þannig að ég ætla að sjá einn, svo eitt skref, kannski tvö skref vegna þess að það er ef 498 00:22:44,540 --> 00:22:47,110 og síðan aftur, en það er fasti tími, ekki satt? 499 00:22:47,110 --> 00:22:49,960 Svo við sögðum O (1), og það er hvernig ég ætla að tjá þetta. 500 00:22:49,960 --> 00:22:51,480 T, bara vera að keyra tíma. 501 00:22:51,480 --> 00:22:54,150 n er the stærð af the inntak, svo T (n), bara ímynda sér vegur 502 00:22:54,150 --> 00:22:56,330 að segja á gangi tími gefinn inntak af stærðinni n 503 00:22:56,330 --> 00:23:00,220 er að fara að vera á röð af föstu tíma, í O (1). 504 00:23:00,220 --> 00:23:01,970 >> En annars, hvað um þetta? 505 00:23:01,970 --> 00:23:05,660 Hvernig myndir þú tjá hlaupandi tími þessa gulu línu? 506 00:23:05,660 --> 00:23:06,250 T hvað? 507 00:23:06,250 --> 00:23:09,440 508 00:23:09,440 --> 00:23:12,665 Þú getur konar svindl hér og svara spurningunni lotubundið. 509 00:23:12,665 --> 00:23:14,770 510 00:23:14,770 --> 00:23:17,900 Svo ef Keyrslutíminn í almennt við segjum bara T (n). 511 00:23:17,900 --> 00:23:18,950 512 00:23:18,950 --> 00:23:22,490 Og nú þú ert góður af Punting hér og segja, vel, bara raða vinstri helming, 513 00:23:22,490 --> 00:23:23,920 og þá raða rétt helminginn. 514 00:23:23,920 --> 00:23:27,520 Hvernig gætum við tákna táknrænt gangi tími þessa gulu línu? 515 00:23:27,520 --> 00:23:28,020 T hvað? 516 00:23:28,020 --> 00:23:29,360 Hvað er the stærð af the inntak? 517 00:23:29,360 --> 00:23:30,510 518 00:23:30,510 --> 00:23:31,057 n yfir tvö. 519 00:23:31,057 --> 00:23:32,140 Af hverju get ég ekki bara sagt það? 520 00:23:32,140 --> 00:23:36,449 Og þá er þetta annar T (n / 2) og síðan aftur, ef ég sameina tvö flokkuð helminga, 521 00:23:36,449 --> 00:23:38,615 hversu margir þættir er ég að fara til að snerta alls? 522 00:23:38,615 --> 00:23:39,780 523 00:23:39,780 --> 00:23:40,320 n. 524 00:23:40,320 --> 00:23:42,790 Svo ég get tjáð þetta, bara til að vera eins konar fínt, 525 00:23:42,790 --> 00:23:44,430 sem keyra tíma almennt. 526 00:23:44,430 --> 00:23:51,140 T (n) er bara að keyra tíma T (n / 2), plús T (n / 2), að vinstri helmingi og hægri helming, 527 00:23:51,140 --> 00:23:55,360 auk O (n), sem er sennilega n skref, en kannski, ef ég ætla að nota tvo fingur, 528 00:23:55,360 --> 00:23:57,960 það er tvisvar sinnum eins og margir skref, en það er línuleg. 529 00:23:57,960 --> 00:24:00,440 Það er einhver fjöldi af skrefum það er þáttur af n, 530 00:24:00,440 --> 00:24:02,270 svo við gætum tjáð þetta og þetta. 531 00:24:02,270 --> 00:24:05,550 Og þetta er þar nú við munum Punt til aftur menntaskóla stærðfræði okkar kennslubók 532 00:24:05,550 --> 00:24:10,290 við erum að endurkomu lokum endar jafna þetta, n sinnum log n, 533 00:24:10,290 --> 00:24:12,530 ef þú gerir í raun út stærðfræði meira formlega. 534 00:24:12,530 --> 00:24:13,950 >> Svo er það bara tvær sjónarmið. 535 00:24:13,950 --> 00:24:17,500 Eitt tölulega með harður-dulmáli dæmigert dæmi 536 00:24:17,500 --> 00:24:21,140 með átta tölustafi, og meira almennt líta á hvernig við komum þangað. 537 00:24:21,140 --> 00:24:25,670 En hvað er í raun áhugavert hér er, aftur, að þetta álit hjólreiða. 538 00:24:25,670 --> 00:24:26,900 Ég er ekki að nota fyrir lykkjur. 539 00:24:26,900 --> 00:24:29,860 Ég er góður að skilgreina eitthvað hvað varðar sjálfu sér, 540 00:24:29,860 --> 00:24:31,950 ekki aðeins með þetta stærðfræði virka, 541 00:24:31,950 --> 00:24:34,860 en einnig hvað varðar þessa sauðakóda. 542 00:24:34,860 --> 00:24:38,260 Þetta gervi kóða er endurkvæma í þeirri tveimur af línum 543 00:24:38,260 --> 00:24:42,310 er fyrst og fremst að segja það að fara nota sig til að leysa minni 544 00:24:42,310 --> 00:24:45,400 Vandamálið öllu minni um sig, og síðan aftur og aftur 545 00:24:45,400 --> 00:24:48,820 og aftur þangað til við tálga það niður að þessu svokallaða grunn tilfelli. 546 00:24:48,820 --> 00:24:52,810 >> Svo skulum raunverulega draga meira sannfærandi taka-burt frá þessu sem hér segir. 547 00:24:52,810 --> 00:24:58,420 Leyfðu mér að fara inn í gedit og taka líta á sumir af dag kóða, 548 00:24:58,420 --> 00:24:59,930 einkum þetta dæmi hér. 549 00:24:59,930 --> 00:25:03,709 Sigma 0, sem virðist bætir tölurnar einn í gegnum n. 550 00:25:03,709 --> 00:25:05,750 Svo skulum sjá hvað er kunnuglegt og framandi hér. 551 00:25:05,750 --> 00:25:08,690 Fyrst við hafa a par af felur í sér, þannig að ekkert nýtt þar. 552 00:25:08,690 --> 00:25:09,190 Frumgerð. 553 00:25:09,190 --> 00:25:11,370 Ég er svolítið óljós um þetta eftir nokkra daga, 554 00:25:11,370 --> 00:25:13,790 en hvað gerði við segja frumgerð af fall er? 555 00:25:13,790 --> 00:25:15,099 556 00:25:15,099 --> 00:25:16,015 Áhorfendur: [inaudible]. 557 00:25:16,015 --> 00:25:16,905 Ræðumaður 1: Hvað er það? 558 00:25:16,905 --> 00:25:17,800 Áhorfendur: Við tilkynntum það. 559 00:25:17,800 --> 00:25:18,883 Ræðumaður 1: Við tilkynntum það. 560 00:25:18,883 --> 00:25:22,290 Svo þú ert að kenna Clang, hey, í raun ekki framkvæmd þetta ennþá, 561 00:25:22,290 --> 00:25:25,740 en einhvers staðar í þessari skrá, væntanlega, er að fara að vera fall sem heitir hvað? 562 00:25:25,740 --> 00:25:26,930 563 00:25:26,930 --> 00:25:27,540 Sigma. 564 00:25:27,540 --> 00:25:30,540 Og þetta er bara loforð sem það er að fara að líta út eins og þetta. 565 00:25:30,540 --> 00:25:33,720 Það er að fara að taka heila tölu sem input-- og ég get verið skýr 566 00:25:33,720 --> 00:25:36,570 og segja int n --and það er fara að skila int, 567 00:25:36,570 --> 00:25:39,900 en semíkommu leið, mm, ég næ í kring að innleiða þetta stuttu seinna. 568 00:25:39,900 --> 00:25:40,989 Aftur, Clang er heimsk. 569 00:25:40,989 --> 00:25:43,280 Það er bara að fara að vita hvað þú segir það toppur til botn, 570 00:25:43,280 --> 00:25:45,765 þannig að við þurfum að minnsta kosti að gefa það vísbending um hvað er að koma. 571 00:25:45,765 --> 00:25:47,330 >> Nú skulum líta á helstu hér. 572 00:25:47,330 --> 00:25:50,040 Við skulum fletta niður hér og sjá hvað helstu er að gera. 573 00:25:50,040 --> 00:25:53,780 Það er ekki það langan falls, og í raun reisa hér er kunnugt. 574 00:25:53,780 --> 00:25:57,590 Ég lýsi breytilegt n, og þá Ég pester notanda aftur og aftur 575 00:25:57,590 --> 00:26:01,880 fyrir jákvæða heiltölu með getInt, og aðeins dyr þessa lykkju 576 00:26:01,880 --> 00:26:03,280 þegar notandi hefur farið. 577 00:26:03,280 --> 00:26:05,670 Að gera á meðan, höfum við notað til að pester notandann í þá áttina. 578 00:26:05,670 --> 00:26:06,670 Nú er þetta áhugavert. 579 00:26:06,670 --> 00:26:08,510 Ég lýsa int kallast "svar." 580 00:26:08,510 --> 00:26:11,420 Ég tengja það aftur gildi um aðgerð sem heitir "Sigma." 581 00:26:11,420 --> 00:26:15,200 Ég veit ekki hvað það gerir enn, en Ég man að lýsa því í smá stund síðan. 582 00:26:15,200 --> 00:26:18,310 Og þá er ég liggur í gildi sem notandinn slegið inn, n, 583 00:26:18,310 --> 00:26:20,420 og þá tilkynni ég svarið. 584 00:26:20,420 --> 00:26:22,260 Jæja við skulum fletta aftur fyrir aðeins augnablik. 585 00:26:22,260 --> 00:26:28,620 Við skulum fara á undan inn í þessa möppu, gera Sigma 0, og í raun að keyra þetta forrit 586 00:26:28,620 --> 00:26:30,490 og sjá hvað gerist. 587 00:26:30,490 --> 00:26:35,930 Þannig að ef ég fer á undan og hlaupa þetta forrit, ./sigma-0, 588 00:26:35,930 --> 00:26:40,139 og ég tegund í a jákvæð heiltala eins tveir, Sigma, 589 00:26:40,139 --> 00:26:43,180 sem grísk tákn gefur til kynna, er bara að fara að bæta upp allar tölur frá 590 00:26:43,180 --> 00:26:44,320 núll á allt að tvo. 591 00:26:44,320 --> 00:26:46,560 Svo 0 plús 1 plús 2. 592 00:26:46,560 --> 00:26:48,830 Þannig að þetta ætti vonandi að gefa mér 3. 593 00:26:48,830 --> 00:26:49,750 Það er allt það er að gera. 594 00:26:49,750 --> 00:26:52,690 Og sömuleiðis, ef ég keyra þetta aftur og ég gef henni í númer þrjú, 595 00:26:52,690 --> 00:26:56,721 það er 3 plús 2, þannig að það er 5, auk 1 ætti að gefa mér 6. 596 00:26:56,721 --> 00:26:59,470 Og þá ef ég fæ virkilega brjálaður og byrjar að slá í stærri tölur, 597 00:26:59,470 --> 00:27:01,290 það ætti að gefa mér stærri og stærri fjárhæðir. 598 00:27:01,290 --> 00:27:02,250 Svo er það allt. 599 00:27:02,250 --> 00:27:04,010 >> Svo hvaða hjartarskinn Sigma út? 600 00:27:04,010 --> 00:27:05,430 Jæja, það er nokkuð augljóst. 601 00:27:05,430 --> 00:27:08,940 Það er hvernig við gætum hafa innleitt þetta fyrir the fortíð par af vika. 602 00:27:08,940 --> 00:27:11,120 "Int" er að fara að vera aftur gerð. 603 00:27:11,120 --> 00:27:14,330 Sigma er nafnið, og það tekur a breytilegum m í stað þess að n. 604 00:27:14,330 --> 00:27:15,940 Ég ætla að upp efst. 605 00:27:15,940 --> 00:27:17,340 Þá er þetta bara geðheilbrigði stöðva. 606 00:27:17,340 --> 00:27:18,430 607 00:27:18,430 --> 00:27:19,950 Við munum sjá hvers vegna í augnablikinu. 608 00:27:19,950 --> 00:27:24,220 Nú er ég að lýsa annað breytu, summa, frumstilla hana á núll. 609 00:27:24,220 --> 00:27:28,140 Þá hef ég þetta fyrir lykkju iterating, virðist til glöggvunar, 610 00:27:28,140 --> 00:27:33,810 frá i = 1 á þig til = m, sem er hvað notandinn slegið inn, og þá er ég 611 00:27:33,810 --> 00:27:35,690 vöxtur summan svona. 612 00:27:35,690 --> 00:27:37,360 Og síðan aftur summan. 613 00:27:37,360 --> 00:27:38,440 >> Svo a par af spurningum. 614 00:27:38,440 --> 00:27:42,370 Einn, ég kröfu á athugasemd mína því þetta forðast hættu á óendanlega lykkju. 615 00:27:42,370 --> 00:27:45,620 Hvers vegna vildi brottför á neikvæðan fjölda örva hugsanlega óendanlega lykkju? 616 00:27:45,620 --> 00:27:49,396 617 00:27:49,396 --> 00:27:51,290 >> Áhorfendur: Þú munt aldrei ná m. 618 00:27:51,290 --> 00:27:52,880 >> Ræðumaður 1: Aldrei að ná m. 619 00:27:52,880 --> 00:27:55,880 En m er samþykkt í, þannig að við skulum íhuga einfalt dæmi. 620 00:27:55,880 --> 00:27:58,510 Ef m er samþykkt í því að notandi sem neikvæð einn. 621 00:27:58,510 --> 00:28:00,059 Óháð aðal. 622 00:28:00,059 --> 00:28:01,850 Helstu ver okkur frá þetta líka, þannig að ég er bara 623 00:28:01,850 --> 00:28:04,680 vera mjög endaþarms með Sigma einnig að ganga úr skugga 624 00:28:04,680 --> 00:28:06,540 að inntak getur ekki verið neikvæð. 625 00:28:06,540 --> 00:28:10,130 Þannig að ef m er neikvæð, eitthvað neikvætt. 626 00:28:10,130 --> 00:28:11,930 Hvað er að fara að gerast? 627 00:28:11,930 --> 00:28:14,390 Jæja, ég er að fara að fá frumstilla einn, 628 00:28:14,390 --> 00:28:19,060 og þá ég er að fara að vera minna en eða jafnt og m? 629 00:28:19,060 --> 00:28:24,130 630 00:28:24,130 --> 00:28:24,765 >> Standa eftir. 631 00:28:24,765 --> 00:28:26,930 632 00:28:26,930 --> 00:28:29,370 Það was-- skulum ekki, skulum nix þessa sögu. 633 00:28:29,370 --> 00:28:32,780 Ég vissi ekki að spyrja þessi spurning, því sú áhætta að ég vísa til 634 00:28:32,780 --> 00:28:38,360 er ekki að fara að gerast vegna þess að ég er alltaf að fara að vera meiri than-- lagi, 635 00:28:38,360 --> 00:28:39,871 Ég retract þeirri spurningu. 636 00:28:39,871 --> 00:28:40,370 OK. 637 00:28:40,370 --> 00:28:42,030 Skulum einblína á þessa hluti hér. 638 00:28:42,030 --> 00:28:44,210 639 00:28:44,210 --> 00:28:48,830 Af hverju gerði ég lýsa sumir utan lykkju? 640 00:28:48,830 --> 00:28:52,010 Tilkynning á línu 49 ég hef lýst i inni í lykkju, 641 00:28:52,010 --> 00:28:54,950 en á netinu 48 Ég hef lýst sumir utan. 642 00:28:54,950 --> 00:28:55,695 Já. 643 00:28:55,695 --> 00:28:56,611 Áhorfendur: [inaudible]. 644 00:28:56,611 --> 00:28:58,734 645 00:28:58,734 --> 00:28:59,400 Ræðumaður 1: Jú. 646 00:28:59,400 --> 00:29:03,360 Svo fyrst og fremst ég vissulega ekki langar að lýsa og frumstilla summan 647 00:29:03,360 --> 00:29:06,130 núlli innanverðu sem lykkja á hverjum endurtekning, 648 00:29:06,130 --> 00:29:09,370 vegna þess að þetta myndi augljóslega vinna bug á Tilgangur því upp tölurnar. 649 00:29:09,370 --> 00:29:11,770 Ég myndi halda að breytast gildi aftur í núll. 650 00:29:11,770 --> 00:29:17,992 Og einnig, hvað er annað meira Bogagöng Ástæðan fyrir því sama hönnun ákvörðun? 651 00:29:17,992 --> 00:29:18,954 Já. 652 00:29:18,954 --> 00:29:20,279 >> Áhorfendur: [inaudible]. 653 00:29:20,279 --> 00:29:21,070 Ræðumaður 1: Einmitt. 654 00:29:21,070 --> 00:29:24,060 Ég vil sjá það utan lykkja líka á hvaða línu? 655 00:29:24,060 --> 00:29:25,390 656 00:29:25,390 --> 00:29:26,400 Á 53.. 657 00:29:26,400 --> 00:29:29,910 Og byggt á reglu okkar um þumalfingur frá a par af fyrirlestrum síðan, 658 00:29:29,910 --> 00:29:33,680 breytur eru scoped, í raun, að því hrokkið axlabönd sem fela þeim. 659 00:29:33,680 --> 00:29:38,190 Þannig að ef ég lýsi ekki summa inni þessara ytri hrokkið axlabönd, 660 00:29:38,190 --> 00:29:40,250 Ég get ekki notað það í samræmi 53.. 661 00:29:40,250 --> 00:29:43,160 Setjið annan hátt, ef ég lýsti Summa hér, eða jafnvel innan 662 00:29:43,160 --> 00:29:45,410 Fyrir lykkja, gat ég ekki opnað það í 53.. 663 00:29:45,410 --> 00:29:47,150 Breytan væri í raun farinn. 664 00:29:47,150 --> 00:29:48,579 Svo nokkrum ástæðum þar. 665 00:29:48,579 --> 00:29:50,370 En nú skulum fara aftur og sjá hvað gerist. 666 00:29:50,370 --> 00:29:51,730 Svo Sigma fær kallað. 667 00:29:51,730 --> 00:29:55,640 Það bætir upp 1 plús 2, eða 1 plús 2 plús 3, og þá skilar gildi, 668 00:29:55,640 --> 00:29:59,660 verslanir það í svar, og printf hér er ástæða þess að ég ætla að sjá á skjánum. 669 00:29:59,660 --> 00:30:03,079 Svo er þetta það sem við munum kalla endurtekningu nálgun, þar sem endurtekning bara 670 00:30:03,079 --> 00:30:03,870 þýðir að nota lykkju. 671 00:30:03,870 --> 00:30:06,900 A Fyrir lykkju, á meðan lykkja, a gera á meðan lykkja, bara að gera eitthvað aftur 672 00:30:06,900 --> 00:30:08,380 og aftur og aftur. 673 00:30:08,380 --> 00:30:13,505 >> En Sigma er góður af snyrtilegur virka í að ég gæti framkvæma það á annan hátt. 674 00:30:13,505 --> 00:30:14,620 675 00:30:14,620 --> 00:30:19,120 Hvað um þetta, sem bara til að vera góður af kaldur, 676 00:30:19,120 --> 00:30:21,880 láta mig virkilega losna a einhver fjöldi af truflun 677 00:30:21,880 --> 00:30:24,380 vegna þessa aðgerð er í raun alveg einfalt. 678 00:30:24,380 --> 00:30:27,780 Tálga það skulum niður bara til fjögur algerlega línum 679 00:30:27,780 --> 00:30:30,410 og losna við alla athugasemdir og hrokkið axlabönd. 680 00:30:30,410 --> 00:30:34,334 Þetta er góður af a Mind-sprengja val framkvæmd. 681 00:30:34,334 --> 00:30:37,250 Allt í lagi, kannski ekki hug-blása, en það er góður af sexier, allt í lagi, 682 00:30:37,250 --> 00:30:39,920 að líta á þetta svo miklu meira succinctly. 683 00:30:39,920 --> 00:30:43,120 Með aðeins fjórum línum af kóða, Ég hef fyrst þetta geðheilsu stöðva. 684 00:30:43,120 --> 00:30:45,732 Ef m er minna en eða jafnt og núll, Sigma gerir ekkert vit. 685 00:30:45,732 --> 00:30:48,190 Það er bara ætlast til að vera í þetta mál fyrir jákvæðar tölur, 686 00:30:48,190 --> 00:30:50,340 þannig að ég ætla bara að fara að skila núll geðþótta 687 00:30:50,340 --> 00:30:53,210 svo að við að minnsta kosti hafa sumir svokallaða stöð ræða. 688 00:30:53,210 --> 00:30:54,430 >> En hér er fegurð. 689 00:30:54,430 --> 00:30:59,930 Í heild á þessa hugmynd, að bæta við tölur frá 1 til N, eða m í þessu tilfelli, 690 00:30:59,930 --> 00:31:02,630 er hægt að gera með því að einskonar brottför peninginn. 691 00:31:02,630 --> 00:31:04,947 Jæja, hvað er summan af 1 til m? 692 00:31:04,947 --> 00:31:05,780 Jæja, þú veist hvað? 693 00:31:05,780 --> 00:31:11,949 Það er það sama og summa m auk summan af 1 til m mínus 1. 694 00:31:11,949 --> 00:31:12,740 Jæja þú veist hvað? 695 00:31:12,740 --> 00:31:13,940 Hvað er Sigma á m mínus 1? 696 00:31:13,940 --> 00:31:17,860 Jæja, ef þú fylgir góður af þessu rökrétt, það er það sama og m mínus 1 697 00:31:17,860 --> 00:31:21,415 auk Sigma af m mínus 2. 698 00:31:21,415 --> 00:31:22,480 699 00:31:22,480 --> 00:31:26,012 Svo þú getur konar just-- þetta er eins og ef þú ert bara 700 00:31:26,012 --> 00:31:28,220 reyna að ónáða vini og þeir spyrja þig spurningu, 701 00:31:28,220 --> 00:31:31,344 þú svarar konar með spurningu, þú getur konar halda brottför peninginn. 702 00:31:31,344 --> 00:31:34,560 En hvað er lykillinn er að ef þú halda gera spurningin minni og minni 703 00:31:34,560 --> 00:31:36,910 og minni, þú ert ekki spyrja hvað er Sigma 704 00:31:36,910 --> 00:31:39,116 n, hvað er Sigma á n, hvað er Sigma n? 705 00:31:39,116 --> 00:31:40,990 Þú ert að spyrja hvað er Sigma n, hvað er Sigma 706 00:31:40,990 --> 00:31:42,839 af n mínus 1, hvað er Sigma af n mínus 2? 707 00:31:42,839 --> 00:31:44,880 Loksins spurningin er að fara að verða hvað? 708 00:31:44,880 --> 00:31:50,250 Hvað er Sigma eitt eða núll, sum mjög lítið gildi, 709 00:31:50,250 --> 00:31:52,220 og um leið og þú fá þessi, vinur þinn, 710 00:31:52,220 --> 00:31:54,350 þú ert ekki að fara að spyrja sama spurning aftur, 711 00:31:54,350 --> 00:31:55,975 þú ert bara að fara að segja, ó það er núll. 712 00:31:55,975 --> 00:31:58,490 Við erum hætt að spila svona af heimskur sveiflujöfnunar leik. 713 00:31:58,490 --> 00:32:02,950 >> Svo endurkvæmni er athöfn í forritun falls starf sig. 714 00:32:02,950 --> 00:32:06,630 Þetta forrit, þegar saman og hlaupa, er að fara að hegða sér á nákvæmlega sama hátt, 715 00:32:06,630 --> 00:32:09,620 en hvað er lykillinn að inni falls heitir Sigma, 716 00:32:09,620 --> 00:32:13,150 það er lína af kóða þarsem Við köllum okkur, 717 00:32:13,150 --> 00:32:14,980 sem myndi venjulega vera slæmt. 718 00:32:14,980 --> 00:32:21,160 Til dæmis, hvað ef ég fyrst unnin á þessu, svo gera sigma-- 719 00:32:21,160 --> 00:32:22,710 gera Sigma 1 ./sigma-1. 720 00:32:22,710 --> 00:32:25,050 721 00:32:25,050 --> 00:32:27,690 Jákvæð heiltala, vinsamlegast, 50 1275. 722 00:32:27,690 --> 00:32:30,810 Svo hvaða hlutverk virðist vera, miðað við eitt próf, rétt. 723 00:32:30,810 --> 00:32:34,917 En hvað ef ég fæ smá hættulegt og eyða svokölluðum grunn tilfelli, 724 00:32:34,917 --> 00:32:37,750 og bara segja, og ég ætla bara að gera þetta flóknara en það er. 725 00:32:37,750 --> 00:32:42,450 Við skulum reikna bara Sigma með því að taka m og síðan að bæta 726 00:32:42,450 --> 00:32:44,564 í Sigma á m mínus einn? 727 00:32:44,564 --> 00:32:45,980 Jæja, hvað er að fara að gerast hér? 728 00:32:45,980 --> 00:32:47,140 Við skulum súmma út. 729 00:32:47,140 --> 00:32:52,920 Skulum laun program, vista það, laun program, 730 00:32:52,920 --> 00:33:00,450 og er þá tilbúin ./sigma-1 zooming í, sláðu jákvæða heiltölu vinsamlegast, 50. 731 00:33:00,450 --> 00:33:02,180 732 00:33:02,180 --> 00:33:04,430 Hversu margir af þú ert tilbúin til fess að sjá það? 733 00:33:04,430 --> 00:33:04,950 >> OK. 734 00:33:04,950 --> 00:33:06,690 Þannig að þetta getur gerst fyrir a tala af ástæða, 735 00:33:06,690 --> 00:33:09,148 og hreinskilnislega í þessari viku erum við um að gefa þér meira af þeim. 736 00:33:09,148 --> 00:33:11,780 En í þessu tilfelli, reyna að ástæða afturábak 737 00:33:11,780 --> 00:33:14,430 hvað gæti hafa gerst hér? 738 00:33:14,430 --> 00:33:17,400 Skiptingu kenna, sagði við síðustu tíma, er átt við hluta af minni. 739 00:33:17,400 --> 00:33:18,690 Eitthvað slæmt gerðist. 740 00:33:18,690 --> 00:33:21,550 En hvað var það vélrænt sem gekk skakkur 741 00:33:21,550 --> 00:33:25,000 hér vegna þess að fjarlægja minn af því svokallaða grunn tilfelli, 742 00:33:25,000 --> 00:33:26,870 þar sem ég skilaði harða dulmáli gildi? 743 00:33:26,870 --> 00:33:28,970 744 00:33:28,970 --> 00:33:30,460 Hvað finnst þér fór úrskeiðis? 745 00:33:30,460 --> 00:33:31,219 Já. 746 00:33:31,219 --> 00:33:32,135 >> Áhorfendur: [inaudible]. 747 00:33:32,135 --> 00:33:36,387 748 00:33:36,387 --> 00:33:36,970 Ræðumaður 1: Ah. 749 00:33:36,970 --> 00:33:37,550 Góð spurning. 750 00:33:37,550 --> 00:33:39,508 Þannig að stærð á fjölda að ég var því upp 751 00:33:39,508 --> 00:33:41,920 fékk svo stór að hún fór yfir stærð minni. 752 00:33:41,920 --> 00:33:44,640 Góð hugmynd, en ekki í grundvallaratriðum að fara að valda hrun. 753 00:33:44,640 --> 00:33:48,230 Það gæti valdið integer flæða, þar sem bitar bara selbiti yfir 754 00:33:48,230 --> 00:33:51,760 og þá erum við mistök mjög stór tölu fyrir eins neikvæða tölu, 755 00:33:51,760 --> 00:33:53,260 en það sjálft mun ekki valda hrun. 756 00:33:53,260 --> 00:33:55,509 Vegna þess að við lok sem dagur int er enn 32 bita. 757 00:33:55,509 --> 00:33:57,640 Þú ert ekki að fara að óvart stela 33 bita. 758 00:33:57,640 --> 00:33:58,431 En góð hugsun. 759 00:33:58,431 --> 00:33:58,984 Já. 760 00:33:58,984 --> 00:33:59,900 >> Áhorfendur: [inaudible]. 761 00:33:59,900 --> 00:34:00,551 762 00:34:00,551 --> 00:34:02,300 Ræðumaður 1: Aðferð aldrei hættir að keyra, 763 00:34:02,300 --> 00:34:06,658 og reyndar kallar það sig aftur og aftur og aftur og aftur 764 00:34:06,658 --> 00:34:08,449 og aftur, og enginn þau virka alltaf 765 00:34:08,449 --> 00:34:13,310 klára því eina línu þeirra númer kallar themself aftur og aftur 766 00:34:13,310 --> 00:34:14,219 og aftur. 767 00:34:14,219 --> 00:34:16,080 Og hvað er í raun gerast hér, og nú erum við 768 00:34:16,080 --> 00:34:18,100 getur konar draga þetta pictorially. 769 00:34:18,100 --> 00:34:20,899 Leyfðu mér að fara yfir til að mynd fyrir aðeins augnablik. 770 00:34:20,899 --> 00:34:22,940 Þetta er mynd, sem munu á endanum hold 771 00:34:22,940 --> 00:34:26,336 nánar, um hvað er að gerast inni minni tölvunnar. 772 00:34:26,336 --> 00:34:28,460 Og það kemur í ljós að á Neðst á þessari mynd 773 00:34:28,460 --> 00:34:29,709 er eitthvað sem kallast stafla. 774 00:34:29,709 --> 00:34:31,920 Þetta er klumpur af minni, klumpur af vinnsluminni, 775 00:34:31,920 --> 00:34:33,920 það er bara notað hvaða tíma fall er kallað. 776 00:34:33,920 --> 00:34:36,239 Í hvert sinn sem þú, forritari, hringja í aðgerð, 777 00:34:36,239 --> 00:34:38,860 stýrikerfi, eins og Mac OS, Windows eða Linux, 778 00:34:38,860 --> 00:34:41,920 grípur fullt af bætum, kannski Nokkrum kílóbæti, kannski nokkrar megabæti 779 00:34:41,920 --> 00:34:44,590 minni, hendur þær til þín, og þá lætur 780 00:34:44,590 --> 00:34:47,650 þú keyrir færni með hvað breytur sem þú þarft. 781 00:34:47,650 --> 00:34:50,699 Og ef þú hringja þá annað virka og annað virka, 782 00:34:50,699 --> 00:34:53,590 þú færð annað sneið af minni og annar sneið af minni. 783 00:34:53,590 --> 00:34:57,090 >> Og reyndar, ef grænu stæði frá Annenberg tákna að minni, 784 00:34:57,090 --> 00:34:59,870 hér er það sem gerist fyrsta skipti sem þú hringja virka Sigma. 785 00:34:59,870 --> 00:35:04,510 Það er eins og að setja bakka svona á hvað er upphaflega tómt stafla. 786 00:35:04,510 --> 00:35:07,142 En svo ef það bakki kallar sig, svo að segja, 787 00:35:07,142 --> 00:35:08,850 hringja annað dæmi Sigma, það er 788 00:35:08,850 --> 00:35:11,640 eins og að biðja um stýrikerfi, ooh, þarf smá meira minni, 789 00:35:11,640 --> 00:35:12,520 gefa mér það. 790 00:35:12,520 --> 00:35:14,840 Og þá fær það hlaðið á toppinn. 791 00:35:14,840 --> 00:35:18,030 En hvað er lykillinn hér er að fyrsta bakki er enn þar, 792 00:35:18,030 --> 00:35:20,620 vegna þess að hann beitti þessum seinni bakkanum. 793 00:35:20,620 --> 00:35:23,500 Nú á meðan, Sigma kalla Sigma, það er eins og að biðja um meira minni. 794 00:35:23,500 --> 00:35:25,830 Gets hlaðið hérna. 795 00:35:25,830 --> 00:35:29,350 Sigma kalla Sigma, það er annað bakki sem fær hlaðið hér. 796 00:35:29,350 --> 00:35:32,942 Og ef þú halda að gera þetta, lokum, eins konar landakort þetta sjón 797 00:35:32,942 --> 00:35:35,525 þeirri töflu, hvað er að fara að gerast með stafla af stæði? 798 00:35:35,525 --> 00:35:37,480 799 00:35:37,480 --> 00:35:41,160 Það er að fara að vera hærri en fjárhæð minni tölvan þín hefur. 800 00:35:41,160 --> 00:35:45,790 Og um leið og þetta græna bakkanum umfram lárétta línu 801 00:35:45,790 --> 00:35:49,410 ofan stafla og ofan að orðinu hrúga, sem við munum koma aftur til í framtíðinni, 802 00:35:49,410 --> 00:35:50,410 það er a slæmur hlutur. 803 00:35:50,410 --> 00:35:52,810 The hrúga er öðruvísi hluti af minni, 804 00:35:52,810 --> 00:35:55,190 og ef þú lætur þetta stæði stafli og stafli á, 805 00:35:55,190 --> 00:35:57,800 þú ert að fara að fara yfir eigin hluti þinn af minni, 806 00:35:57,800 --> 00:36:00,420 og forritið er örugglega að fara að hrun. 807 00:36:00,420 --> 00:36:02,930 >> Nú sem innskot, þessa hugmynd af endurkvæmni, því 808 00:36:02,930 --> 00:36:06,500 greinilega getur leitt til vandamála, en það er ekki endilega slæmur hlutur. 809 00:36:06,500 --> 00:36:08,840 Vegna íhuga, eftir allt how-- og kannski 810 00:36:08,840 --> 00:36:11,700 þetta tekur nokkrar að sættast að --how glæsilegur eða hvernig einföld 811 00:36:11,700 --> 00:36:14,890 að framkvæmd sigma var. 812 00:36:14,890 --> 00:36:17,440 Og við erum ekki að fara að nota endurkvæmni allt að mikið í CS50, 813 00:36:17,440 --> 00:36:20,780 en í CS51, og í raun einhver hópur þar sem þú vinna gögn uppbygging 814 00:36:20,780 --> 00:36:23,640 eins og tré eða fjölskyldu tré, sem hafa einhvern stigveldi, 815 00:36:23,640 --> 00:36:26,000 það er frábær, frábær gagnlegt. 816 00:36:26,000 --> 00:36:29,750 Nú, eins og innskot, svo að þér sem upprennandi tölva vísindamenn 817 00:36:29,750 --> 00:36:33,180 eru kunnugir sum Google inni brandara, ef þú ferð á Google 818 00:36:33,180 --> 00:36:36,345 og þú lítur upp hvað er skilgreining á, segjum, endurkvæmni, inn í. 819 00:36:36,345 --> 00:36:40,208 820 00:36:40,208 --> 00:36:41,110 Uh-ha. 821 00:36:41,110 --> 00:36:42,670 Sem innskot, ég dró upp nokkrar. 822 00:36:42,670 --> 00:36:45,470 Þetta var eins og 10 mínútna frá Procrastination í morgun. 823 00:36:45,470 --> 00:36:52,890 Ef þú líka Google "út og suður," tilkynningu með því að halla höfðinu slightly-- 824 00:36:52,890 --> 00:36:55,120 og þá er þetta einn kannski mest grimmilegur af öllu 825 00:36:55,120 --> 00:36:57,286 þar einhver varið eins dagur þeirra framkvæmd þessa 826 00:36:57,286 --> 00:36:59,880 nokkur ár ago-- koma á. 827 00:36:59,880 --> 00:37:01,140 828 00:37:01,140 --> 00:37:04,540 Ó, wait-- það er padda. 829 00:37:04,540 --> 00:37:08,410 830 00:37:08,410 --> 00:37:11,410 >> Svo í gangi á einu af Stærsta vefsíður heims 831 00:37:11,410 --> 00:37:13,510 eru þessar heimskur lítill Easter egg. 832 00:37:13,510 --> 00:37:16,690 Þeir neyta líklega nontrivial Fjöldi lína af kóða 833 00:37:16,690 --> 00:37:19,280 bara svo að við getum haft smá gaman hlutir eins og þessi. 834 00:37:19,280 --> 00:37:22,140 En að minnsta kosti nú að fá sumir af þeim inni brandara. 835 00:37:22,140 --> 00:37:28,330 >> Nú skulum taka a líta á sumir af the hvítt liggur við höfum verið að segja upp á síðkastið, 836 00:37:28,330 --> 00:37:30,707 og byrja að afhýða aftur sumir lög tæknilega 837 00:37:30,707 --> 00:37:32,790 þannig að þú skiljir virkilega hvað er verið að fara á 838 00:37:32,790 --> 00:37:34,860 og þú getur skilið sumir af the ógnir, 839 00:37:34,860 --> 00:37:38,060 eins ShellShock, sem sem nú hafa byrjað að verða 840 00:37:38,060 --> 00:37:41,110 í fararbroddi í allir er athygli, að minnsta kosti í fjölmiðlum. 841 00:37:41,110 --> 00:37:45,810 Svo er hér mjög einföld aðgerð sem skilar engu, ógilt. 842 00:37:45,810 --> 00:37:46,790 Nafn þess er skipti. 843 00:37:46,790 --> 00:37:50,880 Það tekur tvær breytur og það skilar engu. 844 00:37:50,880 --> 00:37:52,260 Tekur í a og b. 845 00:37:52,260 --> 00:37:53,337 Svo fljótur sýning. 846 00:37:53,337 --> 00:37:54,170 Við tókum þetta upp. 847 00:37:54,170 --> 00:37:56,100 Við gætum eins vel taka smá brjóta hér fyrir aðeins augnablik 848 00:37:56,100 --> 00:37:57,250 og hafa smá eitthvað að drekka. 849 00:37:57,250 --> 00:38:00,120 Ef einhver myndi ekki hug að taka þátt mér upp hér bara í smá stund. 850 00:38:00,120 --> 00:38:01,830 Hvernig um þig í maroon skyrtu? 851 00:38:01,830 --> 00:38:02,335 Komdu upp. 852 00:38:02,335 --> 00:38:04,060 853 00:38:04,060 --> 00:38:05,260 Bara einn dag. 854 00:38:05,260 --> 00:38:06,251 Þakka þér, þó. 855 00:38:06,251 --> 00:38:08,000 Allt í lagi, og við höfum koma upp sem hér? 856 00:38:08,000 --> 00:38:08,660 Hvað er nafn þitt? 857 00:38:08,660 --> 00:38:09,360 >> Ræðumaður 4: Laura. 858 00:38:09,360 --> 00:38:09,740 >> Ræðumaður 1: Laura. 859 00:38:09,740 --> 00:38:10,370 Komdu upp. 860 00:38:10,370 --> 00:38:11,460 861 00:38:11,460 --> 00:38:13,850 Svo Laura, mjög einfalt áskorun í dag. 862 00:38:13,850 --> 00:38:14,704 863 00:38:14,704 --> 00:38:15,370 Gaman að hitta Yo. 864 00:38:15,370 --> 00:38:16,410 865 00:38:16,410 --> 00:38:16,910 Allt í lagi. 866 00:38:16,910 --> 00:38:21,179 Þannig að við höfum mjólk hérna og Við höfum nokkrar appelsínusafa yfir hér 867 00:38:21,179 --> 00:38:23,345 og sumir bollar sem við láni frá Annenberg dag. 868 00:38:23,345 --> 00:38:24,178 >> Ræðumaður 4: láni. 869 00:38:24,178 --> 00:38:27,240 Ræðumaður 1: Og að fara að fara á undan og gefa þér hálft glas af þessu. 870 00:38:27,240 --> 00:38:28,250 871 00:38:28,250 --> 00:38:28,800 Allt í lagi. 872 00:38:28,800 --> 00:38:30,750 Og við munum gefa þér hálf glas af mjólk. 873 00:38:30,750 --> 00:38:31,905 874 00:38:31,905 --> 00:38:35,890 Ó, og bara svo að þú getur man hvað þetta var eins, 875 00:38:35,890 --> 00:38:38,860 Ég minntist á að koma þetta upp og á í dag. 876 00:38:38,860 --> 00:38:42,030 877 00:38:42,030 --> 00:38:42,530 Allt í lagi. 878 00:38:42,530 --> 00:38:45,470 Ef þú vilt ekki huga, við skulum sjá, við getur sett þá yfir eigin gleraugun 879 00:38:45,470 --> 00:38:46,560 ef þú vilt. 880 00:38:46,560 --> 00:38:48,710 Þetta mun vera í heiminum frá augum Lauru. 881 00:38:48,710 --> 00:38:49,210 Allt í lagi. 882 00:38:49,210 --> 00:38:53,820 Svo markmið þitt, gefa tvo bolla af fljótandi hér, mjólk og appelsínusafa, 883 00:38:53,820 --> 00:38:58,370 er að skipta á tveimur innihald þannig að appelsínusafa fer í mjólk bikarnum 884 00:38:58,370 --> 00:39:00,710 og mjólk fer í appelsínusafa bolli. 885 00:39:00,710 --> 00:39:02,359 >> Ræðumaður 4: Þarf ég að fá annan bolla? 886 00:39:02,359 --> 00:39:05,650 Ræðumaður 1: Ég er svo ánægð með að þú spurt, þó það hefði verið miklu betra myndefni 887 00:39:05,650 --> 00:39:06,710 ef þú hefðir ekki spurt. 888 00:39:06,710 --> 00:39:10,620 En já, getum við boðið þér þriðja bolli sem er tóm, að sjálfsögðu. 889 00:39:10,620 --> 00:39:11,120 Allt í lagi. 890 00:39:11,120 --> 00:39:12,300 Svo skipta innihald þar. 891 00:39:12,300 --> 00:39:16,100 892 00:39:16,100 --> 00:39:17,050 Mjög gott. 893 00:39:17,050 --> 00:39:20,390 894 00:39:20,390 --> 00:39:21,305 Mjög gott. 895 00:39:21,305 --> 00:39:23,121 896 00:39:23,121 --> 00:39:24,745 Þú ert að gera þetta ótrúlega vel. 897 00:39:24,745 --> 00:39:26,970 898 00:39:26,970 --> 00:39:28,655 Og stíga þrjú. 899 00:39:28,655 --> 00:39:30,390 900 00:39:30,390 --> 00:39:31,350 Allt í lagi. 901 00:39:31,350 --> 00:39:31,930 Excellent. 902 00:39:31,930 --> 00:39:33,930 Stórt umferð lófaklapp væri gott fyrir Laura. 903 00:39:33,930 --> 00:39:36,500 904 00:39:36,500 --> 00:39:37,000 Allt í lagi. 905 00:39:37,000 --> 00:39:40,790 Við höfum smá skilnaði gjöf fyrir þig, en láta mig taka þetta. 906 00:39:40,790 --> 00:39:42,620 Þakka þér svo mikið. 907 00:39:42,620 --> 00:39:46,170 Svo einfalt dæmi, þó, að sýna fram á að ef þú gerir 908 00:39:46,170 --> 00:39:48,300 langar að skipta innihald af tveimur ílátum, 909 00:39:48,300 --> 00:39:52,360 eða við skulum kalla þá breytum, þú þarft sumir tímabundna geymslu 910 00:39:52,360 --> 00:39:56,710 að stigi einn af the innihald í því að þú getur raunverulega gera skipti. 911 00:39:56,710 --> 00:40:01,790 Svo reyndar, þetta Kóðinn upp hér í C er fulltrúi einmitt það. 912 00:40:01,790 --> 00:40:06,340 Ef appelsínusafa var og mjólk var b, og við vildum að skipta um tvo, 913 00:40:06,340 --> 00:40:08,990 þú gætir reynt eitthvað skapandi með því að hella einn í öðru, 914 00:40:08,990 --> 00:40:11,031 en það myndi sennilega ekki enda sérstaklega vel. 915 00:40:11,031 --> 00:40:15,260 Og svo við notum þriðja bolli, hringja það tmp, T-M-P eftir venju, 916 00:40:15,260 --> 00:40:19,370 og setja innihald OJ í það, þá skipta einn bolla, 917 00:40:19,370 --> 00:40:22,610 þá setja OJ inn í Upprunaleg, þannig 918 00:40:22,610 --> 00:40:25,320 ná, nákvæmlega eins og Laura gerði, þá skipti. 919 00:40:25,320 --> 00:40:26,850 >> Svo skulum gera einmitt það. 920 00:40:26,850 --> 00:40:30,110 Leyfðu mér að fara á undan og opna upp dæmi sem er 921 00:40:30,110 --> 00:40:32,720 reyndar kallað "nei skipta, "vegna þess að þetta er ekki 922 00:40:32,720 --> 00:40:36,180 eins einfaldlega gert eins og þú might hugsa. 923 00:40:36,180 --> 00:40:41,190 Svo í þessari áætlun, eftir að Ég er að nota stdio.h, gamli vinur okkar. 924 00:40:41,190 --> 00:40:43,130 Ég hef frumgerð fyrir skipti þarna, sem 925 00:40:43,130 --> 00:40:45,450 þýðir framkvæmd er þess líklega niður undir, 926 00:40:45,450 --> 00:40:48,050 og við skulum sjá hvað þetta helsta program er að fara að gera fyrir mig. 927 00:40:48,050 --> 00:40:52,020 Ég lýsi fyrst int x fær einn, og int Y fær tvö. 928 00:40:52,020 --> 00:40:54,930 Svo hugsa um þá eins og OJ og mjólk, hver um sig. 929 00:40:54,930 --> 00:40:57,100 Og þá hef ég bara printf segja x er þetta 930 00:40:57,100 --> 00:41:00,120 og y er þetta, bara svo ég get sjónrænt séð hvað er að gerast. 931 00:41:00,120 --> 00:41:03,810 Þá hef ég printf krafa að ég er að skipta á tvær, 932 00:41:03,810 --> 00:41:07,100 og þá prenta ég út halda því fram að þeir eru skiptasamningar, 933 00:41:07,100 --> 00:41:09,300 og ég prenta út x og y aftur. 934 00:41:09,300 --> 00:41:13,010 Svo hérna í skipti er nákvæmlega hvað Laura gerði, 935 00:41:13,010 --> 00:41:16,240 og nákvæmlega það sem við sáum á skjár í smá stund síðan. 936 00:41:16,240 --> 00:41:19,380 >> Svo skulum fara á undan og vera sárlega vonsvikinn. 937 00:41:19,380 --> 00:41:24,690 Gera ekki skipti, og keyra ekki skipti, zooming í á the framleiðsla hér. 938 00:41:24,690 --> 00:41:28,320 Sláðu x er 1, y er 2, skipta skipti. 939 00:41:28,320 --> 00:41:32,700 x er enn 1, og Y er enn 2. 940 00:41:32,700 --> 00:41:37,630 Svo jafnvel þó hreinskilnislega, þetta lítur nákvæmlega eins, að vísu meira tæknilega, 941 00:41:37,630 --> 00:41:40,730 hvað Laura gerði, virtist ekki að vinna. 942 00:41:40,730 --> 00:41:42,130 Svo hvers vegna er það? 943 00:41:42,130 --> 00:41:46,630 Jæja, það kemur í ljós að þegar við að skrifa forrit eins og þetta 944 00:41:46,630 --> 00:41:51,590 sem hefur bæði helstu, er lögð áhersla hér, og þá annað virka, eins og skiptasamninga, 945 00:41:51,590 --> 00:41:54,230 tilgreindir hér, sem það kallar, heimurinn 946 00:41:54,230 --> 00:41:57,030 lítur smá eitthvað eins þessi stæði fyrir augnabliki. 947 00:41:57,030 --> 00:42:00,440 Þegar helstu fyrst fær heitir, það er eins og að spyrja stýrikerfi 948 00:42:00,440 --> 00:42:04,030 fyrir smá minni allir heimamaður breytur eins x og y sem helstu hefur, 949 00:42:04,030 --> 00:42:05,660 og þeir enda rétt þar upp. 950 00:42:05,660 --> 00:42:10,920 En ef helstu símtöl skipta, og helstu fer að skipta tvær breytur, A og B, 951 00:42:10,920 --> 00:42:16,410 appelsínusafa og mjólk, það er ekki eins og fötlun appelsínusafa og mjólk 952 00:42:16,410 --> 00:42:17,500 til Laura. 953 00:42:17,500 --> 00:42:21,300 Hvað tölvan gerir, er það fer afrit af appelsínusafa 954 00:42:21,300 --> 00:42:27,110 og afrit af mjólk til Lauru, svo að hvað er að lokum inni þessa bakka 955 00:42:27,110 --> 00:42:32,510 er gildi eitt og tvö, eða OJ og mjólk, en afrit þeirra, 956 00:42:32,510 --> 00:42:34,790 svo að á þessum tímapunkti í sögunni, það 957 00:42:34,790 --> 00:42:36,930 er OJ og mjólk í öllum þessum bakka. 958 00:42:36,930 --> 00:42:39,260 Það er einn og tveir í öllum þessum stæði, 959 00:42:39,260 --> 00:42:41,720 og skipti aðgerð er örugglega að vinna. 960 00:42:41,720 --> 00:42:46,090 Það er að skipta þeim inni af seinni efsta bakki, 961 00:42:46,090 --> 00:42:48,147 en það swap hefur engin áhrif. 962 00:42:48,147 --> 00:42:49,980 Og byggt á aðeins nokkrum grundvallarregla sem við höfum 963 00:42:49,980 --> 00:42:52,970 talaði um áður, og raunar bara nokkrar mínútur síðan, hvað 964 00:42:52,970 --> 00:42:58,770 gæti útskýrt hvers vegna breyta a og b inni í skipti 965 00:42:58,770 --> 00:43:05,560 hefur engin áhrif á x og y, jafnvel þótt Ég stóðst x og y í skiptasamnings virka. 966 00:43:05,560 --> 00:43:08,750 Hvað er lykillinn orð hér að gæti simplistically útskýra? 967 00:43:08,750 --> 00:43:11,250 968 00:43:11,250 --> 00:43:12,627 Ég held að ég heyrði það hér? 969 00:43:12,627 --> 00:43:13,335 Áhorfendur: Return. 970 00:43:13,335 --> 00:43:14,085 Ræðumaður 1: Return? 971 00:43:14,085 --> 00:43:14,590 Ekki aftur. 972 00:43:14,590 --> 00:43:15,895 Við skulum fara með einum öðrum. 973 00:43:15,895 --> 00:43:16,395 Hvað er það? 974 00:43:16,395 --> 00:43:17,080 >> Áhorfendur: [inaudible]. 975 00:43:17,080 --> 00:43:20,000 >> Ræðumaður 1: Allt í lagi, svo return-- við gátum gera vinnu aftur í sögunni, 976 00:43:20,000 --> 00:43:21,914 en það er jafnvel einfaldara skýring. 977 00:43:21,914 --> 00:43:22,580 Áhorfendur: Gildissvið. 978 00:43:22,580 --> 00:43:23,288 Ræðumaður 1: Gildissvið. 979 00:43:23,288 --> 00:43:24,300 Ég tek svigrúm. 980 00:43:24,300 --> 00:43:27,290 Svo umfang, man hvar x okkar og y lýst. 981 00:43:27,290 --> 00:43:30,840 Þeir eru lýst inni af helstu hægri upp hér. 982 00:43:30,840 --> 00:43:33,200 a og b, á meðan, eru raun lýst 983 00:43:33,200 --> 00:43:35,930 inni skipti, ekki alveg í the hrokkið axlabönd en samt 984 00:43:35,930 --> 00:43:37,690 í almennu svæði af skipti. 985 00:43:37,690 --> 00:43:40,560 Og svo reyndar, a og b aðeins til í þessari skúffu 986 00:43:40,560 --> 00:43:44,850 frá Annenberg þetta Annað klumpur af kóða. 987 00:43:44,850 --> 00:43:49,500 Þannig að við erum örugglega að breyta afrit, en það er í raun ekki allt sem gagnlegt. 988 00:43:49,500 --> 00:43:52,190 >> Svo skulum taka a líta á þetta svolítið lægri. 989 00:43:52,190 --> 00:43:55,430 Ég ætla að fara aftur í The Source Directory, 990 00:43:55,430 --> 00:43:58,330 og ég ætla að fyrst zoom í hér, og bara 991 00:43:58,330 --> 00:44:02,290 til að staðfesta að ég er í þessu stærri endastöðvar, 992 00:44:02,290 --> 00:44:04,430 forritið er enn að haga sér eins og þessi. 993 00:44:04,430 --> 00:44:06,840 Segjum nú að þetta er ekki viljandi. 994 00:44:06,840 --> 00:44:10,090 Augljóslega vildi ég skipti við vinna, svo finnst það eins og padda. 995 00:44:10,090 --> 00:44:12,780 Nú ég gæti byrjað að bæta upp mikið af printf til að númerið mitt, 996 00:44:12,780 --> 00:44:16,010 prenta út x hérna, y yfir hér, að hérna, b hérna. 997 00:44:16,010 --> 00:44:18,220 En hreinskilnislega, það er líklega það þú hefur verið að gera í nokkrar vikur 998 00:44:18,220 --> 00:44:20,190 nú, í skrifstofutíma og heima þegar að vinna 999 00:44:20,190 --> 00:44:22,150 á psets að reyna að finna einhverja galla. 1000 00:44:22,150 --> 00:44:25,560 En þú munt sjá, ef þú hefur ekki nú þegar, þessi vandamál setja þrjú kynnir þér 1001 00:44:25,560 --> 00:44:31,630 að skipun sem heitir GDB, þar GDB, GNU aflúsara, 1002 00:44:31,630 --> 00:44:34,040 hefur sér það heild búnt af aðgerðir sem geta í raun 1003 00:44:34,040 --> 00:44:38,160 láta okkur skilja aðstæður eins og þetta, en meira compellingly, 1004 00:44:38,160 --> 00:44:39,940 leysa vandamál og finna galla. 1005 00:44:39,940 --> 00:44:40,940 Þannig að ég ætla að fara að gera þetta. 1006 00:44:40,940 --> 00:44:44,770 Í stað þess að ./noswap, ég er í staðinn að fara að keyra GDB ./noswap. 1007 00:44:44,770 --> 00:44:47,410 1008 00:44:47,410 --> 00:44:51,200 Í öðrum orðum, ég er að fara að keyra minn áætlun ekki í Bash, ný vinur okkar 1009 00:44:51,200 --> 00:44:51,850 í dag. 1010 00:44:51,850 --> 00:44:53,970 Ég ætla að keyra minn Forritið noswap inni 1011 00:44:53,970 --> 00:44:56,900 þessarar önnur forrit sem heitir GDB, sem er a aflúsara, sem 1012 00:44:56,900 --> 00:45:01,035 er forrit sem er hannað til að hjálpa þú mönnum að finna og fjarlægja galla. 1013 00:45:01,035 --> 00:45:03,410 Svo ef ég högg hlaupa hér, það er er grimmilegur magn af texta 1014 00:45:03,410 --> 00:45:04,868 að þú virkilega aldrei að lesa. 1015 00:45:04,868 --> 00:45:07,290 Það er fyrst og fremst truflun frá the hvetja, sem 1016 00:45:07,290 --> 00:45:10,030 Ég ætla að lemja Control-L að komast upp á toppinn þar. 1017 00:45:10,030 --> 00:45:11,800 Þetta er GDB hvetja. 1018 00:45:11,800 --> 00:45:15,550 Ef ég vil að hlaupa þetta forrit núna, sem þetta litla svindlari lak á dag 1019 00:45:15,550 --> 00:45:21,860 renna til kynna, hlaupa er fyrsta skipanir sem við þýddi að kynna. 1020 00:45:21,860 --> 00:45:25,150 Og ég ætla bara að fara að slá hlaupa upp hér inni gdb, 1021 00:45:25,150 --> 00:45:26,811 og reyndar hljóp forritið mitt. 1022 00:45:26,811 --> 00:45:29,310 Nú er það einhver viðbótar framleiðsla af the skjár eins og þetta, 1023 00:45:29,310 --> 00:45:31,910 en það er GDB bara vera endaþarms og segja okkur hvað er að gerast. 1024 00:45:31,910 --> 00:45:34,451 Þú þarft í raun ekki að hafa áhyggjur um þessar upplýsingar núna. 1025 00:45:34,451 --> 00:45:36,890 En hvað er raunverulega kaldur um GDB, ef ég geri þetta again-- 1026 00:45:36,890 --> 00:45:42,100 Control-L hreinsar screen-- láta mig fara undan og tegund "brjóta helstu," þannig, 1027 00:45:42,100 --> 00:45:45,743 þegar ég lenti inn, setja hvað er kallað brot lið á noswap.c, 1028 00:45:45,743 --> 00:45:51,270 lína 16, sem er þar sem GDB mynstrağur út program minn raun 1029 00:45:51,270 --> 00:45:53,070 er hlutverk mitt í raun og veru er. 1030 00:45:53,070 --> 00:45:55,070 Þetta munum við að hunsa í bili en það er heimilisfangið 1031 00:45:55,070 --> 00:45:57,310 í minni sérstaklega þessa aðgerð. 1032 00:45:57,310 --> 00:46:00,240 Svo núna þegar ég pikka hlaupa, taka eftir hvað er flott hérna. 1033 00:46:00,240 --> 00:46:05,650 Áætlun mín brýtur á línuna I sagði GDB til að gera hlé framkvæmd á. 1034 00:46:05,650 --> 00:46:09,850 Þannig að ég þarf ekki að nú breytt númerið mitt, bæta nokkrum printf er, laun það, endursýning 1035 00:46:09,850 --> 00:46:13,300 það, breyta, bæta við nokkrum printf er, vista það, að endurþýða hana, keyra hana. 1036 00:46:13,300 --> 00:46:18,100 Ég get bara gengið í gegnum áætlun mína skref fyrir skref fyrir skref á mönnum hraða, 1037 00:46:18,100 --> 00:46:20,880 ekki á Intel-inni konar hraða. 1038 00:46:20,880 --> 00:46:24,580 >> Svo nú taka þessa línu birtist hér, og ef ég fer aftur 1039 00:46:24,580 --> 00:46:27,800 til áætlun mína í gedit, eftir því að það er í raun 1040 00:46:27,800 --> 00:46:29,280 The mjög fyrstur lína af kóða. 1041 00:46:29,280 --> 00:46:31,240 Það er lína 16 í gedit. 1042 00:46:31,240 --> 00:46:34,610 Það er lína 16 innan gdb, og jafnvel þó þetta svart og hvítt tengi 1043 00:46:34,610 --> 00:46:37,760 er ekki nærri eins notanda vingjarnlegur, þetta þýðir 1044 00:46:37,760 --> 00:46:41,680 þessi lína 16 hefur ekki verið keyrð enn, en það er um að vera. 1045 00:46:41,680 --> 00:46:46,220 Svo örugglega ef ég tegund prenta x, ekki printf, bara prenta x, 1046 00:46:46,220 --> 00:46:50,730 Ég fæ smá svikinn gildi þar af núll, því x hefur ekki verið forsniðin enn. 1047 00:46:50,730 --> 00:46:54,760 Þannig að ég ætla að fara að skrifa næst, eða, ef þú langar að vera fínt, bara n í næsta. 1048 00:46:54,760 --> 00:46:59,090 En þegar ég slæ inn næst inn, nú eftir það færist á línu 17. 1049 00:46:59,090 --> 00:47:02,840 Svo rökrétt, ef ég hef framkvæmt lína 16 og ég gerð nú prenta x, 1050 00:47:02,840 --> 00:47:03,640 hvað ætti ég að sjá? 1051 00:47:03,640 --> 00:47:04,970 1052 00:47:04,970 --> 00:47:05,520 Einn. 1053 00:47:05,520 --> 00:47:07,820 >> Og nú er þetta að vísu ruglingslegt. 1054 00:47:07,820 --> 00:47:11,260 2 $ er bara fínt leið, ef þú vilja til að vísa til þess virði síðar, 1055 00:47:11,260 --> 00:47:12,510 þú getur sagt "dollaramerki tvö." 1056 00:47:12,510 --> 00:47:13,480 Það er eins og a bak tilvísun. 1057 00:47:13,480 --> 00:47:14,570 En nú, bara hunsa það. 1058 00:47:14,570 --> 00:47:17,070 Hvað er áhugavert er það sem er á hægri jafn skilti. 1059 00:47:17,070 --> 00:47:21,000 Og nú ef ég tegund næst aftur og prenta Y, ætti ég að sjá 2. 1060 00:47:21,000 --> 00:47:23,870 Ég get nú einnig prentað x aftur, og hreinskilnislega, 1061 00:47:23,870 --> 00:47:27,130 ef ég er að fá smá ruglaður í þar sem ég er, ég get slegið lista fyrir lista 1062 00:47:27,130 --> 00:47:30,590 og bara sjá sumir samhengi um það sem ég er í raun á. 1063 00:47:30,590 --> 00:47:35,180 Og nú get ég slegið næst, og þar sem x er 1. 1064 00:47:35,180 --> 00:47:36,300 Nú er ég að slá næst. 1065 00:47:36,300 --> 00:47:37,710 Oh, y er 2. 1066 00:47:37,710 --> 00:47:40,750 Og aftur, það er truflandi, vegna framleiðslu gdb er 1067 00:47:40,750 --> 00:47:43,044 er commingled með eigin framleiðslu mína. 1068 00:47:43,044 --> 00:47:45,710 En ef þú geymir í huga, því að glancing fram og til baka á númerið þitt 1069 00:47:45,710 --> 00:47:47,740 eða leggja það út hlið við hlið kannski, þú munt 1070 00:47:47,740 --> 00:47:51,020 sjá að í raun er ég bara stepping gegnum áætlun mína. 1071 00:47:51,020 --> 00:47:54,620 >> En eftir hvað gerist næst, bókstaflega. 1072 00:47:54,620 --> 00:47:56,380 Hér er lína 22. 1073 00:47:56,380 --> 00:48:01,315 Leyfðu mér að fara yfir það, þannig að flytja á til 23, og ef ég prenta x nú, enn einn. 1074 00:48:01,315 --> 00:48:03,890 Og ef ég prenta y nú, enn eitt. 1075 00:48:03,890 --> 00:48:05,820 Svo er þetta ekki gagnlegt æfa. 1076 00:48:05,820 --> 00:48:07,450 Svo skulum endurtaka þetta. 1077 00:48:07,450 --> 00:48:10,069 Leyfðu mér að fara aftur upp að efst og tegund hlaupa aftur. 1078 00:48:10,069 --> 00:48:12,110 Og það er að segja forritið sem er verið að debugged 1079 00:48:12,110 --> 00:48:14,109 hefur byrjað nú þegar, fór frá upphafi. 1080 00:48:14,109 --> 00:48:15,420 Já, við skulum gera þetta aftur. 1081 00:48:15,420 --> 00:48:22,000 Og að þessu sinni skulum gera næst, næst, næst, næst, næst, 1082 00:48:22,000 --> 00:48:24,180 en nú hlutirnir fá áhugavert. 1083 00:48:24,180 --> 00:48:27,760 Nú vil ég að stíga inn í skipti, þannig að ég slá ekki næst. 1084 00:48:27,760 --> 00:48:34,380 Ég slá skref, og nú taka það hefur stökk mér að noswap.c línu 33. 1085 00:48:34,380 --> 00:48:37,240 Ef ég fer aftur til gedit, hvað er lína 33? 1086 00:48:37,240 --> 00:48:40,500 Það er fyrsta raun lína af kóða inni skipti. 1087 00:48:40,500 --> 00:48:44,150 Sem er gott, því nú get ég konar pota í kring og fá forvitinn 1088 00:48:44,150 --> 00:48:46,052 hvað er að gerast sannarlega þarna. 1089 00:48:46,052 --> 00:48:46,760 Leyfðu mér að prenta tmp. 1090 00:48:46,760 --> 00:48:47,770 1091 00:48:47,770 --> 00:48:48,800 Bíddu. 1092 00:48:48,800 --> 00:48:51,438 Hvers vegna er tmp hafa sumir brjálaður, svikinn sorp gildi? 1093 00:48:51,438 --> 00:48:54,579 1094 00:48:54,579 --> 00:48:56,120 Áhorfendur: Það hefur ekki verið forsniðin. 1095 00:48:56,120 --> 00:48:57,150 Ræðumaður 1: Það hefur ekki verið forsniðin. 1096 00:48:57,150 --> 00:49:00,270 Og reyndar, þegar þú keyrir forritið, þú ert að gefa í heild búnt af minni 1097 00:49:00,270 --> 00:49:03,392 af stýrikerfi, en þú hafa ekki frumstilla allar gildi, 1098 00:49:03,392 --> 00:49:05,600 svo hvað bitar sem þú ert sjá hér, jafnvel þó að það er 1099 00:49:05,600 --> 00:49:07,770 þetta brjálaður stór neikvæð númer, bara þýðir 1100 00:49:07,770 --> 00:49:10,750 að þeir eru leifar frá sumir fyrri notkun þess RAM, 1101 00:49:10,750 --> 00:49:13,050 jafnvel þótt ég hafi ekki sjálfur þarf hann enn. 1102 00:49:13,050 --> 00:49:17,086 Svo nú er ég að fara að fara á undan og tegund næst, og ef ég tegund núna prenta tmp, 1103 00:49:17,086 --> 00:49:17,835 hvað ætti ég að sjá? 1104 00:49:17,835 --> 00:49:19,570 1105 00:49:19,570 --> 00:49:23,360 Hvað sem gildi fyrir var, a er fyrsta rifrildi, bara 1106 00:49:23,360 --> 00:49:25,550 eins X var fyrst hlutur berist í, 1107 00:49:25,550 --> 00:49:30,450 svo og x ætti að vera sama, svo prenta tmp ætti að prenta mér eitt. 1108 00:49:30,450 --> 00:49:36,360 >> Svo það sem þú munt sjá í Heimadæmi þrjú er eitthvert af tegund á gdb, 1109 00:49:36,360 --> 00:49:40,020 en ljóst að þetta er upphaf af að líta á tæki sem mun í raun og veru 1110 00:49:40,020 --> 00:49:42,774 hjálpa þér að leysa vandamál svo miklu meira í raun. 1111 00:49:42,774 --> 00:49:44,690 Það sem við erum að lokum að fara að gera á miðvikudaginn 1112 00:49:44,690 --> 00:49:48,180 er að byrja að afhýða aftur nokkrum lögum og fjarlægja sumir þjálfun hjól. 1113 00:49:48,180 --> 00:49:50,496 Þessi hlutur sem kallast band sem við höfum notað í nokkurn tíma, 1114 00:49:50,496 --> 00:49:53,370 við erum að fara að hægt að taka það í burtu frá þér og byrja að tala um 1115 00:49:53,370 --> 00:49:55,725 eitthvað meira esoterically þekktur sem char *, 1116 00:49:55,725 --> 00:49:59,550 en við erum að fara að gera þetta fallega og varlega í fyrstu, jafnvel þótt ábendingum, 1117 00:49:59,550 --> 00:50:02,730 eins og þeir eru kallaðir, geta gera sumir mjög slæmur hlutur ef misnotuð, 1118 00:50:02,730 --> 00:50:06,040 með því að horfa á smá claymation frá vinur okkar Nick Parlante frá Stanford 1119 00:50:06,040 --> 00:50:09,670 University, prófessor í tölvunni vísindi sem setti saman þessa forskoðun 1120 00:50:09,670 --> 00:50:11,075 af hvað er að koma þessum Miðvikudagur. 1121 00:50:11,075 --> 00:50:12,196 1122 00:50:12,196 --> 00:50:13,400 >> [Vídeó spilun] 1123 00:50:13,400 --> 00:50:13,900 -Hey, Binky. 1124 00:50:13,900 --> 00:50:14,930 1125 00:50:14,930 --> 00:50:15,780 Vakna. 1126 00:50:15,780 --> 00:50:17,240 Það er kominn tími til að bendillinn gaman. 1127 00:50:17,240 --> 00:50:18,260 1128 00:50:18,260 --> 00:50:19,350 >> Hvað er það? 1129 00:50:19,350 --> 00:50:21,150 Læra um ábendingum? 1130 00:50:21,150 --> 00:50:22,050 Ó, Goody! 1131 00:50:22,050 --> 00:50:22,897 1132 00:50:22,897 --> 00:50:23,730 [END vídeó spilun] 1133 00:50:23,730 --> 00:50:25,396 Ræðumaður 1: Það bíður þér á miðvikudag. 1134 00:50:25,396 --> 00:50:26,440 Við munum sjá þig þá. 1135 00:50:26,440 --> 00:50:27,106 [Vídeó spilun] 1136 00:50:27,106 --> 00:50:30,420 -Og Nú, Deep Thoughts, með Daven Farnham. 1137 00:50:30,420 --> 00:50:33,980 1138 00:50:33,980 --> 00:50:35,900 >> Af hverju erum við að læra C? 1139 00:50:35,900 --> 00:50:36,785 Hvers vegna ekki A +? 1140 00:50:36,785 --> 00:50:38,550 1141 00:50:38,550 --> 00:50:40,910 >> [Hlátur] 1142 00:50:40,910 --> 00:50:42,160 >> [END vídeó spilun]