>> SPEAKER 1: Dalam versi terakhir sigma, saya telah melaksanakan apa yang saya akan memanggil
penyelesaian lelaran, di mana saya menggunakan gelung ke hadapan untuk mengira sehingga semua
nombor antara 1 dan m, selepas itu kembali jumlah.
>> Tetapi ternyata kita boleh menggunakan satu lagi teknik untuk melaksanakan yang sama
fungsi, teknik yang dikenali sebagai rekursi.
Fungsi rekursif, jadi untuk bercakap, hanya satu yang menyeru itu sendiri.
Sekarang, dalam dan dengan sendirinya, yang mungkin menjadi masalah.
Jika fungsi semata-mata panggilan sendiri yang panggilan sendiri yang panggilan itu sendiri,
proses yang mungkin BOT pernah berakhir.
Tetapi selagi kita termasuk apa yang dipanggil kes asas, satu keadaan yang memastikan
bahawa dalam sesetengah keadaan kita tidak memanggil diri kita sendiri, bahawa proses sebaliknya
gelung tak terhingga patut terhenti.
>> Mari kita sekarang mengimplemen semula sigma seperti berikut.
Jika n adalah kurang daripada atau sama dengan 0, saya semata-mata, dan agak sewenang-wenangnya,
akan kembali 0.
Lain apa yang saya akan lakukan adalah sebenarnya mengira sigma untuk int positif
bahawa saya telah diserahkan.
>> Sekarang, apa yang sigma m?
Nah, sigma m adalah, sudah tentu, jumlah 1 hingga m.
Tetapi jika kita berfikir tentang dengan cara yang lain, ia hanya jumlah m plus m
tolak 1 campur m tolak 2 dan sebagainya, semua jalan ke 1.
Jadi dalam erti kata itu, ia kelihatan bahawa Saya hanya dapat kembali m plus.
>> Dan kemudian saya perlu m tolak 1 campur tolak 2 m.
Tetapi saya mempunyai satu fungsi yang boleh memberi saya dengan tepat jawapan itu, iaitu
sigma m tolak 1.
>> Sekarang, memanggil diri saya dengan cara ini tidak kelihatan seperti idea yang terbaik.
Kerana jika sigma sigma panggilan yang menyeru sigma yang menyeru sigma, anda
akan berfikir bahawa proses ini mungkin tidak pernah berakhir.
Tetapi itu sebabnya kita mempunyai asas yang dipanggil kes di bahagian atas fungsi ini.
Jika keadaan yang memeriksa jika m adalah kurang daripada atau sama dengan 0 Saya tidak akan
untuk memanggil diri saya.
Saya bukannya akan kembali 0, yang seterusnya akan dimasukkan ke dalam
nombor sebelum ini bahawa saya telah menjumlahkan sehingga, dengan itu berhenti ini
proses sebaliknya tidak terbatas.
>> Sekarang mari kita lihat jika ini baru pelaksanaan kerja-kerja.
Mari kita menyimpan, menyusun, dan menjalankan program ini.
Buat sigma 1 dot slash sigma 1.
Dan mari kita menyediakan dengan yang nombor yang sama seperti sebelum ini.
2, yang diharapkan perlu memberi saya 3.
Mari kita menyediakan dengan 3, yang diharapkan dapat memberikan saya 6.
Dan mari kita akhirnya menyediakan dengan 50, yang sememangnya memberikan saya 1,275.