1 00:00:00,000 --> 00:00:03,110 >> SPEAKER 1: Dalam versi terakhir sigma, saya telah melaksanakan apa yang saya akan memanggil 2 00:00:03,110 --> 00:00:06,570 penyelesaian lelaran, di mana saya menggunakan gelung ke hadapan untuk mengira sehingga semua 3 00:00:06,570 --> 00:00:09,720 nombor antara 1 dan m, selepas itu kembali jumlah. 4 00:00:09,720 --> 00:00:12,560 >> Tetapi ternyata kita boleh menggunakan satu lagi teknik untuk melaksanakan yang sama 5 00:00:12,560 --> 00:00:15,120 fungsi, teknik yang dikenali sebagai rekursi. 6 00:00:15,120 --> 00:00:19,360 Fungsi rekursif, jadi untuk bercakap, hanya satu yang menyeru itu sendiri. 7 00:00:19,360 --> 00:00:21,290 Sekarang, dalam dan dengan sendirinya, yang mungkin menjadi masalah. 8 00:00:21,290 --> 00:00:24,500 Jika fungsi semata-mata panggilan sendiri yang panggilan sendiri yang panggilan itu sendiri, 9 00:00:24,500 --> 00:00:26,080 proses yang mungkin BOT pernah berakhir. 10 00:00:26,080 --> 00:00:30,490 Tetapi selagi kita termasuk apa yang dipanggil kes asas, satu keadaan yang memastikan 11 00:00:30,490 --> 00:00:34,930 bahawa dalam sesetengah keadaan kita tidak memanggil diri kita sendiri, bahawa proses sebaliknya 12 00:00:34,930 --> 00:00:37,070 gelung tak terhingga patut terhenti. 13 00:00:37,070 --> 00:00:39,180 >> Mari kita sekarang mengimplemen semula sigma seperti berikut. 14 00:00:39,180 --> 00:00:43,810 Jika n adalah kurang daripada atau sama dengan 0, saya semata-mata, dan agak sewenang-wenangnya, 15 00:00:43,810 --> 00:00:45,670 akan kembali 0. 16 00:00:45,670 --> 00:00:49,370 Lain apa yang saya akan lakukan adalah sebenarnya mengira sigma untuk int positif 17 00:00:49,370 --> 00:00:50,460 bahawa saya telah diserahkan. 18 00:00:50,460 --> 00:00:52,050 >> Sekarang, apa yang sigma m? 19 00:00:52,050 --> 00:00:55,480 Nah, sigma m adalah, sudah tentu, jumlah 1 hingga m. 20 00:00:55,480 --> 00:00:58,820 Tetapi jika kita berfikir tentang dengan cara yang lain, ia hanya jumlah m plus m 21 00:00:58,820 --> 00:01:02,560 tolak 1 campur m tolak 2 dan sebagainya, semua jalan ke 1. 22 00:01:02,560 --> 00:01:08,080 Jadi dalam erti kata itu, ia kelihatan bahawa Saya hanya dapat kembali m plus. 23 00:01:08,080 --> 00:01:10,210 >> Dan kemudian saya perlu m tolak 1 campur tolak 2 m. 24 00:01:10,210 --> 00:01:13,470 Tetapi saya mempunyai satu fungsi yang boleh memberi saya dengan tepat jawapan itu, iaitu 25 00:01:13,470 --> 00:01:16,340 sigma m tolak 1. 26 00:01:16,340 --> 00:01:19,670 >> Sekarang, memanggil diri saya dengan cara ini tidak kelihatan seperti idea yang terbaik. 27 00:01:19,670 --> 00:01:22,610 Kerana jika sigma sigma panggilan yang menyeru sigma yang menyeru sigma, anda 28 00:01:22,610 --> 00:01:24,480 akan berfikir bahawa proses ini mungkin tidak pernah berakhir. 29 00:01:24,480 --> 00:01:27,720 Tetapi itu sebabnya kita mempunyai asas yang dipanggil kes di bahagian atas fungsi ini. 30 00:01:27,720 --> 00:01:31,540 Jika keadaan yang memeriksa jika m adalah kurang daripada atau sama dengan 0 Saya tidak akan 31 00:01:31,540 --> 00:01:32,610 untuk memanggil diri saya. 32 00:01:32,610 --> 00:01:37,010 Saya bukannya akan kembali 0, yang seterusnya akan dimasukkan ke dalam 33 00:01:37,010 --> 00:01:39,950 nombor sebelum ini bahawa saya telah menjumlahkan sehingga, dengan itu berhenti ini 34 00:01:39,950 --> 00:01:41,740 proses sebaliknya tidak terbatas. 35 00:01:41,740 --> 00:01:43,710 >> Sekarang mari kita lihat jika ini baru pelaksanaan kerja-kerja. 36 00:01:43,710 --> 00:01:46,510 Mari kita menyimpan, menyusun, dan menjalankan program ini. 37 00:01:46,510 --> 00:01:50,640 Buat sigma 1 dot slash sigma 1. 38 00:01:50,640 --> 00:01:52,900 Dan mari kita menyediakan dengan yang nombor yang sama seperti sebelum ini. 39 00:01:52,900 --> 00:01:55,520 2, yang diharapkan perlu memberi saya 3. 40 00:01:55,520 --> 00:01:58,970 Mari kita menyediakan dengan 3, yang diharapkan dapat memberikan saya 6. 41 00:01:58,970 --> 00:02:03,480 Dan mari kita akhirnya menyediakan dengan 50, yang sememangnya memberikan saya 1,275. 42 00:02:03,480 --> 00:02:06,130