1 00:00:00,000 --> 00:00:05,860 >> [Musika jotzen] 2 00:00:05,860 --> 00:00:09,530 >> DOUG LLOYD: seguruenik dela uste duzu kode besterik zeregin bat betetzeko erabiltzen da. 3 00:00:09,530 --> 00:00:10,450 , Idatziko duzu. 4 00:00:10,450 --> 00:00:11,664 Zerbait egiten du. 5 00:00:11,664 --> 00:00:12,580 Hori nahiko asko. 6 00:00:12,580 --> 00:00:13,160 >> Konpilatu duzu. 7 00:00:13,160 --> 00:00:13,993 Programa exekutatu beharko duzu. 8 00:00:13,993 --> 00:00:15,370 Ona joan zara. 9 00:00:15,370 --> 00:00:17,520 >> Baina sinetsi edo ez, bada denbora luzez kodea dituzu, 10 00:00:17,520 --> 00:00:20,550 benetan ikustera etorri dezakezun hori da eder zerbait bezala kodea. 11 00:00:20,550 --> 00:00:23,275 Arazo bat konpontzen da a modu oso interesgarria, 12 00:00:23,275 --> 00:00:26,510 edo zerbait besterik ez da benetan Bide batez, itxura buruz neat. 13 00:00:26,510 --> 00:00:28,750 Izango da barre dezakezu me at, baina egia da. 14 00:00:28,750 --> 00:00:31,530 Eta errekurtsio modu bat da Ideia hau lortzeko moduko 15 00:00:31,530 --> 00:00:34,090 eder, dotore-begira kodea. 16 00:00:34,090 --> 00:00:37,740 Arazoak konpontzen modutan egiten duten dira interesgarriak, erraz ikusteko, 17 00:00:37,740 --> 00:00:39,810 eta harrigarriro laburrak. 18 00:00:39,810 --> 00:00:43,190 >> Bide errekurtsio Lanek da, funtzio errekurtsiboa 19 00:00:43,190 --> 00:00:49,291 deiak funtzio bezala definitzen da bera bere exekuzioa parte gisa. 20 00:00:49,291 --> 00:00:51,790 Hori apur bat arraroa dirudi dezake, eta ikusiko dugu pixka bat 21 00:00:51,790 --> 00:00:53,750 hau nola une batean lan inguru. 22 00:00:53,750 --> 00:00:55,560 Baina, berriro ere, horiek prozedurak errekurtsiboak diren 23 00:00:55,560 --> 00:00:57,730 hain dotorea izango da ari dira joan delako 24 00:00:57,730 --> 00:01:00,410 arazo hau konpondu behar izan gabe beste funtzio horiek guztiak izatea 25 00:01:00,410 --> 00:01:02,710 edo loops luze hauetan. 26 00:01:02,710 --> 00:01:06,310 Ikusiko duzu errekurtsiboak horiek prozedurak dira hain laburra itxura du. 27 00:01:06,310 --> 00:01:10,610 Eta benetan ari den egiteko joan Zure kodea itxura askoz gehiago ederra. 28 00:01:10,610 --> 00:01:12,560 >> Emango dizut adibide bat Hori ikusteko nola 29 00:01:12,560 --> 00:01:14,880 prozedura errekurtsiboa definitu liteke. 30 00:01:14,880 --> 00:01:18,202 Beraz, hau ezagutzen, etatik matematika klasean orain dela urte asko, 31 00:01:18,202 --> 00:01:20,910 izeneko zerbait egin faktorial funtzioa, hau da, normalean 32 00:01:20,910 --> 00:01:25,340 harridura, gisa adierazten bertan zenbaki oso positiboak guztien gainetik definitzen da. 33 00:01:25,340 --> 00:01:28,850 Eta modu n faktoriala kalkulatzen da 34 00:01:28,850 --> 00:01:31,050 da guztia biderkatu baino zenbakiak gutxiago 35 00:01:31,050 --> 00:01:33,750 edo berdin n, elkarrekin Osoko zenbaki guztiak baino gutxiago 36 00:01:33,750 --> 00:01:34,880 edo n elkarrekin berdina. 37 00:01:34,880 --> 00:01:39,850 >> Beraz, 5 faktore 5 aldiz da 4 aldiz 3 aldiz 2 aldiz 1. 38 00:01:39,850 --> 00:01:43,020 Eta 4 faktore 4 aldiz da 3 aldiz 2 aldiz 1 eta abar. 39 00:01:43,020 --> 00:01:44,800 Ideia lortuko duzu. 40 00:01:44,800 --> 00:01:47,060 >> Programatzaileak, ez dugu erabili n, harridura. 41 00:01:47,060 --> 00:01:51,840 Beraz, faktore definitzen zaitugu funtzioaren n, hain zuzen ere. 42 00:01:51,840 --> 00:01:56,897 Eta faktore erabiliko dugu sortzea arazo baten irtenbidea errekurtsiboa. 43 00:01:56,897 --> 00:01:59,230 Eta agian aurkituko duzu, uste dut asko dela gehiago ikusmen 44 00:01:59,230 --> 00:02:02,380 Etorriko baino erakargarria honen bertsioa, eta horrek 45 00:02:02,380 --> 00:02:05,010 Aukera izango dugu begirada bat hartu, une batean. 46 00:02:05,010 --> 00:02:08,310 >> Hortaz, hona hemen pare bat facts-- Pun xedea 47 00:02:08,310 --> 00:02:10,169 factorial-- inguru faktorial funtzioa. 48 00:02:10,169 --> 00:02:13,090 1 faktoriala, esan dudan bezala, 1 da. 49 00:02:13,090 --> 00:02:15,690 Nondik 2 faktoriala 2 aldiz 1 da. 50 00:02:15,690 --> 00:02:18,470 3 faktore 3 da aldiz 2 aldiz 1, eta abar. 51 00:02:18,470 --> 00:02:20,810 4 eta 5 dagoeneko buruz hitz egin dugu. 52 00:02:20,810 --> 00:02:23,940 >> Baina hau begira, ez da hori egia? 53 00:02:23,940 --> 00:02:28,220 Hau da, ez du 2 faktore besterik 2 aldiz 1 faktoriala? 54 00:02:28,220 --> 00:02:31,130 Esan nahi dut, 1 faktoriala 1 da. 55 00:02:31,130 --> 00:02:34,940 Beraz, zergatik ezin esan garela, nondik 2 faktore geroztik 2 aldiz 1 da, 56 00:02:34,940 --> 00:02:38,520 benetan da 2 aldiz 1 faktoriala? 57 00:02:38,520 --> 00:02:40,900 >> Eta gero, ideia hori zabaltzen, Ez da 3 faktore 58 00:02:40,900 --> 00:02:44,080 besterik 3 aldiz 2 faktoriala? 59 00:02:44,080 --> 00:02:50,350 Eta 4 faktoriala 4 aldiz da 3, eta abar faktoriala? 60 00:02:50,350 --> 00:02:52,530 Izan ere, faktore Bat zenbakiaren besterik 61 00:02:52,530 --> 00:02:54,660 bagenu adieraz mota ren eraman honek egindako betiko. 62 00:02:54,660 --> 00:02:56,870 Mota dezakezu orokortu dugu faktore arazoa 63 00:02:56,870 --> 00:02:59,910 izan ere n garaiak faktore n ken 1. 64 00:02:59,910 --> 00:03:04,840 Produktua n aldiz etorri da zenbaki guztiak ni baino gutxiago. 65 00:03:04,840 --> 00:03:08,890 >> Ideia hori, hau arazoa orokortu, 66 00:03:08,890 --> 00:03:13,410 ahalbidetzen errekurtsiboki gurekin faktore funtzioa definitu. 67 00:03:13,410 --> 00:03:15,440 Funtzio bat definitzen duzu errekurtsiboki, ez da 68 00:03:15,440 --> 00:03:17,470 horren zati bat izan behar duten bi gauza. 69 00:03:17,470 --> 00:03:20,990 Zerbait izeneko bat eduki behar duzu base kasuan, zein izango da, baldin aktibatu behar dituzu, 70 00:03:20,990 --> 00:03:22,480 errekurtsiboak prozesua eten egingo da. 71 00:03:22,480 --> 00:03:25,300 >> Bestela, funtzio hori deiak itself-- baliteke imagine-- gisa 72 00:03:25,300 --> 00:03:26,870 ezin betiko joan. 73 00:03:26,870 --> 00:03:29,047 Funtzioa funtzioa deitzen funtzio deiak deiak 74 00:03:29,047 --> 00:03:30,380 funtzioa funtzioa deitzen. 75 00:03:30,380 --> 00:03:32,380 Izan ez baduzu, modu bat izan gelditu, zure programa 76 00:03:32,380 --> 00:03:34,760 eraginkortasunez egingo trabatuta begizta amaigabea sortu zen. 77 00:03:34,760 --> 00:03:37,176 Azkenean, huts egingo du, Egingo memoria agortu delako. 78 00:03:37,176 --> 00:03:38,990 Baina hori puntu ondoan da. 79 00:03:38,990 --> 00:03:42,210 >> Beste batzuk gelditzeko bidea izan behar dugu Gauzak gure programa bertan behera gelditzen gain, 80 00:03:42,210 --> 00:03:46,010 hori izorratzen programa bat dagoelako Seguru asko ez eder ez dotoreak. 81 00:03:46,010 --> 00:03:47,690 Eta, beraz, hau oinarri kasuan deitu dugu. 82 00:03:47,690 --> 00:03:50,610 Hau irtenbide erraz bat da Arazo bat bertan gelditzen da 83 00:03:50,610 --> 00:03:52,770 prozesua errekurtsiboak gertatzen from. 84 00:03:52,770 --> 00:03:55,220 Beraz, horren zati bat da funtzio errekurtsiboa. 85 00:03:55,220 --> 00:03:56,820 >> Bigarren zatian, kasu errekurtsiboak da. 86 00:03:56,820 --> 00:03:59,195 Eta hau da, non errekurtsibitateko benetan izango. 87 00:03:59,195 --> 00:04:02,200 Hau da, non funtzio bera deituko. 88 00:04:02,200 --> 00:04:05,940 >> Horrela ez da berez deitu zehazki in Modu berean, deitzen zen. 89 00:04:05,940 --> 00:04:08,880 Aldakuntza txiki bat besterik ez da izango duten arazoa da, egiten 90 00:04:08,880 --> 00:04:11,497 teeny apur bat txikiagoak konpondu nahian. 91 00:04:11,497 --> 00:04:14,330 Baina, oro har, Buck pasatzen da Konponbide ontziratu konpontzeko 92 00:04:14,330 --> 00:04:17,450 ezberdinak dei bat lerro behera. 93 00:04:17,450 --> 00:04:20,290 >> Begiradak horietatik zein oinarri kasuan hemen bezala? 94 00:04:20,290 --> 00:04:25,384 Zein itxura duen horietako bat errazena arazo baten irtenbidea? 95 00:04:25,384 --> 00:04:27,550 Faktorialen mordo bat dugu, eta jarraitu dugu 96 00:04:27,550 --> 00:04:30,470 joan on-- 6, 7, 8, 9, 10, eta abar. 97 00:04:30,470 --> 00:04:34,130 >> Baina itxura hauetako bat Kasu ona base kasua izan da. 98 00:04:34,130 --> 00:04:35,310 Konponbidea oso erraza da. 99 00:04:35,310 --> 00:04:37,810 Ez dugu ezer berezirik egin behar. 100 00:04:37,810 --> 00:04:40,560 >> 1 faktoriala 1 besterik ez da. 101 00:04:40,560 --> 00:04:42,790 Guk ez dugu izan inolako egin biderketa batere. 102 00:04:42,790 --> 00:04:45,248 Goaz bada dirudi eta saiatu arazo hau konpondu, 103 00:04:45,248 --> 00:04:47,600 eta gelditu behar dugu errekurtsio nonbait, 104 00:04:47,600 --> 00:04:50,610 ziurrenik gelditu nahi dugu egiten denean, 1 lortuko dugu. 105 00:04:50,610 --> 00:04:54,580 Guk ez dugu horren aurretik gelditu nahi. 106 00:04:54,580 --> 00:04:56,660 >> Beraz, ez dugu definitzeko ari bada Gure faktore funtzioa, 107 00:04:56,660 --> 00:04:58,690 Hemen ekarriko duen hezurdura bat nola egiten dugu agian. 108 00:04:58,690 --> 00:05:03,110 Bi horiek gauza konektatu behar dugu oinarri kasuan eta Errekurtsiboaren kasuan. 109 00:05:03,110 --> 00:05:04,990 Zer da oinarri kasuan? 110 00:05:04,990 --> 00:05:10,150 N 1 berdina bada, itzultzeko 1-- hori da Arazoa oso sinplea da konpondu. 111 00:05:10,150 --> 00:05:11,890 >> 1 faktoriala 1 da. 112 00:05:11,890 --> 00:05:13,860 Ez da 1 aldiz ezer. 113 00:05:13,860 --> 00:05:15,020 Ez besterik 1 da. 114 00:05:15,020 --> 00:05:17,170 Izan ere, oso erraza da. 115 00:05:17,170 --> 00:05:19,620 Eta beraz, gure base kasuan izan daiteke. 116 00:05:19,620 --> 00:05:24,730 Ezagutu genuen gainditu 1 honetara bada funtzioa, besterik ez dugu itzuli 1. 117 00:05:24,730 --> 00:05:27,320 >> Zer da Errekurtsiboaren Kasu seguruenik itxura? 118 00:05:27,320 --> 00:05:32,445 Beste zenbaki bakoitzeko 1 gainera, zer da eredua? 119 00:05:32,445 --> 00:05:35,780 Beno, guk hartzen ari bada n faktoriala, 120 00:05:35,780 --> 00:05:38,160 n faktoriala da, n aldiz ken 1. 121 00:05:38,160 --> 00:05:42,130 >> Dugu faktore hartzen ari bazara 3koa, 3 ken 1 faktoriala 3 aldiz da, 122 00:05:42,130 --> 00:05:43,070 edo 2. 123 00:05:43,070 --> 00:05:47,330 Eta ez ditut orain badugu 1 begira, bestela 124 00:05:47,330 --> 00:05:51,710 Bueltan n garaiak faktore n ken 1. 125 00:05:51,710 --> 00:05:53,210 Nahiko erraza da. 126 00:05:53,210 --> 00:05:57,360 >> Eta apur bat izatea mesedetan garbiagoak eta dotoreago kodea, 127 00:05:57,360 --> 00:06:01,440 badakiela single-line loops badaukagu edo single-line baldintzapeko adar, 128 00:06:01,440 --> 00:06:04,490 ezin dugu guztia kentzeko horien inguruan kizkur giltza. 129 00:06:04,490 --> 00:06:06,850 Beraz, hau sendotzen doan neurrian. 130 00:06:06,850 --> 00:06:09,640 Hau ditu berdin-berdin funtzionalitate honek bezala. 131 00:06:09,640 --> 00:06:13,850 >> Kanpoan egiten dudanean kizkur du giltza, ez lerro bakarra delako 132 00:06:13,850 --> 00:06:18,500 baldintzapeko adarretan horiek barruan. 133 00:06:18,500 --> 00:06:21,160 Beraz, hauek jokatu berdinean. 134 00:06:21,160 --> 00:06:23,800 N 1 berdina bada, itzultzeko 1. 135 00:06:23,800 --> 00:06:28,351 Bestela n aldiz itzuli n ken 1 faktoriala. 136 00:06:28,351 --> 00:06:29,850 Beraz, arazoa txikiagoak egiten ari gara. 137 00:06:29,850 --> 00:06:33,850 N hasten bada 5. bezala, goaz itzultzeko 4 faktoriala 5 aldiz. 138 00:06:33,850 --> 00:06:37,100 Eta minutu bat ere ikusiko dugu nola hitz egiten dugun deiaren beste bideo bat stack-- buruz 139 00:06:37,100 --> 00:06:39,390 non buruz hitz egiten dugunean deitu stack-- ikasiko dugu 140 00:06:39,390 --> 00:06:41,630 zergatik zehazki prozesu honek funtzionatzen. 141 00:06:41,630 --> 00:06:46,970 >> Baina 5 faktore berriz dio itzultzeko 5 aldiz faktore 4, eta 4 142 00:06:46,970 --> 00:06:49,710 hau da, esatea OK, ondo joan, itzulera 4 aldiz 3 faktore. 143 00:06:49,710 --> 00:06:51,737 Eta ikusiko duzunez, ez gara Sort hurbiltzen 1. 144 00:06:51,737 --> 00:06:53,820 Hurbiltzen ari gara eta oinarri kasuan hurbilago. 145 00:06:53,820 --> 00:06:58,180 >> Eta behin base kasuan hit dugu, aurreko funtzio guztiak 146 00:06:58,180 --> 00:07:00,540 ziren bilatzen erantzunik. 147 00:07:00,540 --> 00:07:03,900 Nondik 2 Factorial zen bueltan esanez 2 aldiz 1 faktoriala. 148 00:07:03,900 --> 00:07:06,760 Beno, 1 1 itzultzen faktoriala. 149 00:07:06,760 --> 00:07:10,090 Beraz, faktore egiteko deia Guztira: 2 2 aldiz 1 itzultzeko, 150 00:07:10,090 --> 00:07:13,980 eta faktoriala itzuli dela ematen 3, hau da, emaitza horren zain. 151 00:07:13,980 --> 00:07:17,110 >> Eta gero, kalkulatu ahal izango da bere emaitza, 3 aldiz 2 6 da, 152 00:07:17,110 --> 00:07:18,907 eta atzera emateko 4 faktoriala da. 153 00:07:18,907 --> 00:07:20,740 Eta berriro ere, bat egin behar dugu Bideo-dei pilan 154 00:07:20,740 --> 00:07:23,810 non Horren adibide apur bat oraintxe esaten dudana baino gehiago. 155 00:07:23,810 --> 00:07:25,300 Baina hau ez da. 156 00:07:25,300 --> 00:07:29,300 Bakarrik honen konponbidea da zenbaki baten faktoriala kalkulatzeko. 157 00:07:29,300 --> 00:07:31,527 >> Kode lerro lau besterik ez da. 158 00:07:31,527 --> 00:07:32,610 Hori nahiko cool, ezta? 159 00:07:32,610 --> 00:07:35,480 Sexy mota da. 160 00:07:35,480 --> 00:07:38,580 >> Beraz, oro har, baina ez beti, funtzio errekurtsiboa 161 00:07:38,580 --> 00:07:41,190 batean begizta bat ordezkatu ahal funtzio ez-errekurtsiboa. 162 00:07:41,190 --> 00:07:46,100 Hortaz, hona hemen, aldamenean, da iteratibo du faktore funtzio bertsioa. 163 00:07:46,100 --> 00:07:49,650 Kalkulatu horiek biak gauza berdina. 164 00:07:49,650 --> 00:07:52,170 >> N faktoriala kalkulatu biek. 165 00:07:52,170 --> 00:07:54,990 Ezkerrean bertsioa errekurtsio egin behar den erabiltzen. 166 00:07:54,990 --> 00:07:58,320 Eskuin hegaletik bertsioa iterazio egin behar den erabiltzen. 167 00:07:58,320 --> 00:08:02,050 >> Eta, adi, deklaratzeko daukagu aldagai bat zenbaki oso produktu bat. 168 00:08:02,050 --> 00:08:02,940 Eta gero, begizta. 169 00:08:02,940 --> 00:08:06,790 Beraz, luze 0 baino handiagoa n bezala, dugu mantentzeko by n produktua biderkatzeko 170 00:08:06,790 --> 00:08:09,890 eta arte decrementing n Produktu kalkulatu dugu. 171 00:08:09,890 --> 00:08:14,600 Beraz, bi funtzio horiek, berriro, zehazki gauza bera egiten. 172 00:08:14,600 --> 00:08:19,980 Baina ez dute ezer egiten hasi zehazki modu berean. 173 00:08:19,980 --> 00:08:22,430 >> Orain, posible da horri base bat baino gehiago izan 174 00:08:22,430 --> 00:08:25,770 Kasu edo bat baino gehiago Kasu errekurtsiboak, arabera 175 00:08:25,770 --> 00:08:27,670 zer funtzioa egiten saiatzen da. 176 00:08:27,670 --> 00:08:31,650 Ez zaude zertan bakarrik mugatzen base bat kasu bakar edo errekurtsiboak bakar bat 177 00:08:31,650 --> 00:08:32,370 Kasu. 178 00:08:32,370 --> 00:08:35,320 Beraz, zerbait adibide bat base anitz kasu 179 00:08:35,320 --> 00:08:37,830 egongo den Halako du Fibonacci zenbaki sekuentzia. 180 00:08:37,830 --> 00:08:41,549 >> Gogora ekarri ahal izango duzu oinarrizko eskola egun 181 00:08:41,549 --> 00:08:45,740 Fibonacci sekuentzia definitzen da Halako lehen elementua 0 da. 182 00:08:45,740 --> 00:08:46,890 Bigarren elementua 1 da. 183 00:08:46,890 --> 00:08:49,230 Horietako bi besterik definizioz dira. 184 00:08:49,230 --> 00:08:55,920 >> Gero, beste elementu guztietan definitzen da n ken 1 eta n ken 2 batuketa bezala. 185 00:08:55,920 --> 00:09:00,330 Hirugarren elementua So litzateke 0 plus 1 da 1. 186 00:09:00,330 --> 00:09:03,280 Eta gero, laugarren elementu Bigarren elementua, 1 izango litzateke, 187 00:09:03,280 --> 00:09:06,550 gehi hirugarren elementua 1. 188 00:09:06,550 --> 00:09:08,507 Eta hori 2 izango litzateke. 189 00:09:08,507 --> 00:09:09,340 Eta abar, eta abar. 190 00:09:09,340 --> 00:09:11,680 >> Beraz, kasu honetan, base bi kasu izan ditugu. 191 00:09:11,680 --> 00:09:14,850 N 1 berdina bada, itzultzeko 0. 192 00:09:14,850 --> 00:09:18,560 N 2 berdina bada, itzultzeko 1. 193 00:09:18,560 --> 00:09:25,930 Bestela, itzultzeko Fibonacci-ren n ken 1 plus n ken 2 Fibonacci. 194 00:09:25,930 --> 00:09:27,180 >> Beraz, hori oinarri anitz kasutan da. 195 00:09:27,180 --> 00:09:29,271 Zer kasutan errekurtsiboak anitz buruz? 196 00:09:29,271 --> 00:09:31,520 Beno, bada zerbait Collatz aierua deritzo. 197 00:09:31,520 --> 00:09:34,630 Ez dut esan, badakizu zer dela, 198 00:09:34,630 --> 00:09:38,170 Egia esan, gure final delako Bideo hau bereziki arazoa. 199 00:09:38,170 --> 00:09:43,220 Eta gure ariketa da elkarrekin lan egiteko. 200 00:09:43,220 --> 00:09:46,760 >> Hortaz, hona hemen zer egin Collatz aierua is-- 201 00:09:46,760 --> 00:09:48,820 aplikatzen oso positibo guztietan da. 202 00:09:48,820 --> 00:09:51,500 Eta espekulatzen da, hori da beti posible lortzeko itzuli 203 00:09:51,500 --> 00:09:55,060 1 urrats horiek jarraitu baduzu. 204 00:09:55,060 --> 00:09:57,560 N 1 bada, gelditzeko. 205 00:09:57,560 --> 00:10:00,070 Lortu dugu atzera 1era n 1 bada. 206 00:10:00,070 --> 00:10:05,670 >> Honen bidez Bestela, joan prozesua berriro on N 2 banatuta. 207 00:10:05,670 --> 00:10:08,200 Eta ikusten duzu atzera eskuratzeko 1 badaiteke. 208 00:10:08,200 --> 00:10:13,260 Bestela, n bakoitia bada, joan bidez Prozesu hau berriro 3N plus 1, 209 00:10:13,260 --> 00:10:15,552 edo 3 aldiz n gehi 1. 210 00:10:15,552 --> 00:10:17,010 Hortaz, hona base bat kasu bakar dugula. 211 00:10:17,010 --> 00:10:18,430 N 1 berdina bada, gelditzeko. 212 00:10:18,430 --> 00:10:20,230 Ez dugu inolako errekurtsio gehiago egiten. 213 00:10:20,230 --> 00:10:23,730 >> Baina bi kasuetan errekurtsiborik dugu. 214 00:10:23,730 --> 00:10:28,750 N bikoitia bada, errekurtsiboak bat egiten dugu Kasu, deituz n 2 banatuta. 215 00:10:28,750 --> 00:10:33,950 N bakoitia bada, desberdin bat egiten dugu 3 aldiz n plus 1ean kasuan errekurtsiboak. 216 00:10:33,950 --> 00:10:39,120 >> Eta orain bideo honen helburua da bigarren bat hartu, pausatu bideoa, 217 00:10:39,120 --> 00:10:42,440 eta saiatu eta idatzi hau Funtzio errekurtsiboak Collatz 218 00:10:42,440 --> 00:10:47,640 Bertan ere balio n bat pasatzen duzu, eta urrats zenbatek kalkulatzen du 219 00:10:47,640 --> 00:10:52,430 1era iritsi hasten bada n bildu du eta, batez ere, urrats horiek jarraitu nahi izanez gero. 220 00:10:52,430 --> 00:10:56,660 N 1 badago, 0 pausu behar da. 221 00:10:56,660 --> 00:11:00,190 Bestela, da joan urrats bat plus ordea hartu 222 00:11:00,190 --> 00:11:06,200 Urrats asko hartzen n banatan 2 banatuta n bikoitia bada, edo 3N plus 1 223 00:11:06,200 --> 00:11:08,100 n bakoitia bada. 224 00:11:08,100 --> 00:11:11,190 >> Orain, jarri ditut pantailan hemen Proba zuretzat gauza pare bat, 225 00:11:11,190 --> 00:11:15,690 probak kasu pare bat zuretzat, ikusi zer hainbat Collatz zenbakiak honako hauek dira, 226 00:11:15,690 --> 00:11:17,440 eta, era berean, ilustrazio bat urrats duten 227 00:11:17,440 --> 00:11:20,390 beraz, ahal duzun pasatu behar dira Ordena ikusten martxan jarritako prozesu honetan. 228 00:11:20,390 --> 00:11:24,222 Beraz n berdina bada 1, n Collatz 0 da. 229 00:11:24,222 --> 00:11:26,180 Ez daukazu egin ezer lortzeko itzuli 1era. 230 00:11:26,180 --> 00:11:27,600 Dagoeneko zara han. 231 00:11:27,600 --> 00:11:30,550 >> N 2 bada, ere hartzen du Urrats bat 1 iristeko. 232 00:11:30,550 --> 00:11:31,810 Hasteko 2 dituzu. 233 00:11:31,810 --> 00:11:33,100 Beno, 2 ez da 1 berdina. 234 00:11:33,100 --> 00:11:36,580 Beraz, urrats bat izango da plus urrats ordea askok 235 00:11:36,580 --> 00:11:38,015 hartzen N 2 banatuta. 236 00:11:38,015 --> 00:11:41,280 237 00:11:41,280 --> 00:11:42,910 >> 2 2 banatuta 1 da. 238 00:11:42,910 --> 00:11:47,200 Beraz, urrats bat plus ordea hartzen du Urrats asko 1 hartzen du. 239 00:11:47,200 --> 00:11:49,720 1 hartzen zero pausoak. 240 00:11:49,720 --> 00:11:52,370 >> 3. Zeren, ikusten duzunez, ez da hartzen duten urratsak gutxi batzuk. 241 00:11:52,370 --> 00:11:53,590 3tik joan zaitezke. 242 00:11:53,590 --> 00:11:56,710 Eta gero joan behar duzu 10, 5, 16, 8, 4, 2, 1. 243 00:11:56,710 --> 00:11:58,804 Zazpi urrats hartzen dadin 1era. 244 00:11:58,804 --> 00:12:01,220 Eta ikusiko duzunez, ez da bat Bikote beste proba kasuak hemen 245 00:12:01,220 --> 00:12:02,470 probatzeko zure programa. 246 00:12:02,470 --> 00:12:03,970 Beraz, berriro ere, eten bideoa. 247 00:12:03,970 --> 00:12:09,210 Eta joan naiz salto back orain benetako prozesu zer da hemen, 248 00:12:09,210 --> 00:12:11,390 uste hori zer den. 249 00:12:11,390 --> 00:12:14,140 >> Ikusi duzu irudikatu ahal bada n Collatz nola definitu 250 00:12:14,140 --> 00:12:19,967 kalkulatzen duen, zenbat orain 1era iritsi hartzen pausoak. 251 00:12:19,967 --> 00:12:23,050 Beraz, espero dugu, bideo-eten duzu eta zuk ez dira nire zain 252 00:12:23,050 --> 00:12:25,820 erantzuna emateko hemen. 253 00:12:25,820 --> 00:12:29,120 Baina bazaude, bai, Hona hemen erantzuna hala ere. 254 00:12:29,120 --> 00:12:33,070 >> Beraz, hemen posible definizio bat Collatz funtzioaren. 255 00:12:33,070 --> 00:12:35,610 Gure oinarri Beraz Kasu n badago 1 berdina, itzuliko gara 0. 256 00:12:35,610 --> 00:12:38,250 Ez du inolako hartu urrats atzera egin nahi 1era. 257 00:12:38,250 --> 00:12:42,710 >> Bestela, bi kasu batzuetan errekurtsiborik dugu zenbakiak, nahiz eta beste bat bakoitietan bat. 258 00:12:42,710 --> 00:12:47,164 Bide batez, zenbakiak are probatzeko I n mod 2 berdin 0 egiaztatzeko. 259 00:12:47,164 --> 00:12:49,080 Hau da, funtsean, berriz ere, galdera galdetuz, 260 00:12:49,080 --> 00:12:54,050 Gogora zer mod is-- galtzen dut arrail 2 by n ez da gainerako no? 261 00:12:54,050 --> 00:12:55,470 Hori are kopuru bat izango litzateke. 262 00:12:55,470 --> 00:13:01,370 >> Eta hain n mod 2 berdinen 0 da azterketa da hau Zenbaki. 263 00:13:01,370 --> 00:13:04,250 Hala bada, itzultzeko 1 nahi dut, hau da, behin betiko delako 264 00:13:04,250 --> 00:13:09,270 urrats bat gehi Collatz hartu edozein zenbakia me erdia da. 265 00:13:09,270 --> 00:13:13,910 Bestela, itzultzeko 1 nahi dut plus Collatz 3 aldiz n gehi 1. 266 00:13:13,910 --> 00:13:16,060 Hori izan zen, bestea Urrats errekurtsiboak garela 267 00:13:16,060 --> 00:13:19,470 kalkulatzeko har lezake Collatz-- urrats kopurua 268 00:13:19,470 --> 00:13:22,610 Atzera lortu hartzen du 1 zenbakia dute. 269 00:13:22,610 --> 00:13:24,610 Beraz, espero dugu, adibide honetan Pixka bat eman zenuen 270 00:13:24,610 --> 00:13:26,620 prozedurak errekurtsiboak zaporea bat. 271 00:13:26,620 --> 00:13:30,220 Zorionez, uste duzu kode da gutxi ederragoa bada inplementatu 272 00:13:30,220 --> 00:13:32,760 , modu dotorean errekurtsiboak ere. 273 00:13:32,760 --> 00:13:35,955 Baina ez bada ere, errekurtsio da tresna oso indartsua hala ere. 274 00:13:35,955 --> 00:13:38,330 Eta, beraz, behin betiko da zerbait zure burua lortu ahal izateko, 275 00:13:38,330 --> 00:13:41,360 duzun, sortzeko gai izan dugu programak nahiko cool errekurtsio erabiliz 276 00:13:41,360 --> 00:13:45,930 liteke hori, edonola ere, konplexua den idatzi you loops eta iterazio erabiliz gero. 277 00:13:45,930 --> 00:13:46,980 Naiz Doug Lloyd. 278 00:13:46,980 --> 00:13:48,780 Hau CS50 da. 279 00:13:48,780 --> 00:13:50,228