СПІКЕР 1: У гэтым апошняй версіі сігма, я рэалізаваў тое, што я назваў бы ітэрацыйныя рашэнне, у выніку чаго я выкарыстаў наперад пятля падлічыць усе лікі ад 1 да м, пасля гэтага вяртаючы суму. Але, аказваецца, мы можам выкарыстоўваць іншы Тэхніка для рэалізацыі ў тым жа Функцыя, метад, вядомы як рэкурсіі. Рэкурсіўная функцыя, так бы мовіць, проста той, які называе сябе. Цяпер, само па сабе, што могуць быць праблемы. Калі функцыя проста называе сябе, якія называе сябе якая называе сябе, што працэс можа бот калі-небудзь скончыцца. Але пакуль мы ўключаюць так званы базавы варыянт, ўмова, якое забяспечвае што ў некаторых сітуацыях мы не называем самі, што працэс у адваротным выпадку бясконцае зацыкленне павінна быць спынена. Давайце зараз перавызначыць сігма наступным чынам. Калі п менш або роўна 0, я проста, і некалькі адвольна, збіраецца вяртаць 0. Астатняе, што я збіраюся зрабіць, гэта на самай справе вылічыць сігма для станоўчага міжнар , Што я перадаў. Цяпер, што сігма м? Ну, сігма т, вядома, сума 1 праз м. Але калі мы думаем пра гэта па-іншаму, гэта проста сума м плюс м мінус 1 плюс мінус 2 м і г. д., усё, аж да 1. Так што ў гэтым сэнсе, здаецца, што Я мог проста вярнуцца M Plus. А потым мне трэба м мінус 1 плюс 2 м мінус. Але ў мяне ёсць функцыя, якая можа даць мне дакладна, што адказ, а менавіта сігма т мінус 1. Цяпер, называючы сябе такім чынам не пахадзіць на лепшую ідэю. Таму што, калі сігма называе сігма які выклікае сігма якая заклікае сігма, вы было б думаць, што гэты працэс ніколі не можа скончыцца. Але менавіта таму ў нас быў так званы базу выпадак у верхняй частцы гэтай функцыі. Калі ўмова, якое правярае, калі т менш або роўна 0 Я не збіраюся называць сябе. Я замест збіраецца вяртаць 0, якія у сваю чаргу, будуць дададзеныя да папярэднія лічбы, якія я падсумоўвання уверх, такім чынам спыняючы гэта у адваротным выпадку бясконцы працэс. Давайце паглядзім, калі гэта новае рэалізацыя працуе. Выратуем, кампіляцыі і запусціць гэтую праграму. Зрабіць сігма 1 кропка слэш сігма 1. І давайце даць яму тыя ж нумары, што і раней. 2, якія, будзем спадзявацца, даць мне 3. Давайце даць яму 3, што я спадзяюся даць мне 6. І давайце, нарэшце, забяспечыць яго 50, якая сапраўды дае мне 1275.