1 00:00:00,000 --> 00:00:03,110 >> SPEAKER 1: Trong phiên bản mới nhất của sigma, tôi thực hiện những gì tôi sẽ gọi 2 00:00:03,110 --> 00:00:06,570 một giải pháp lặp đi lặp lại, nhờ đó mà tôi đã sử dụng một về phía trước vòng lặp để đếm tất cả các 3 00:00:06,570 --> 00:00:09,720 số từ 1 đến m, sau đó trả lại tiền. 4 00:00:09,720 --> 00:00:12,560 >> Nhưng hóa ra chúng ta có thể sử dụng một kỹ thuật để thực hiện cùng 5 00:00:12,560 --> 00:00:15,120 chức năng, một kỹ thuật được gọi là đệ quy. 6 00:00:15,120 --> 00:00:19,360 Một hàm đệ quy, có thể nói, chỉ đơn giản là một trong những cuộc gọi của chính nó. 7 00:00:19,360 --> 00:00:21,290 Bây giờ, trong và của chính nó, mà có thể là một vấn đề. 8 00:00:21,290 --> 00:00:24,500 Nếu một chức năng đơn giản tự gọi mình mà tự gọi mình là các cuộc gọi riêng của mình, 9 00:00:24,500 --> 00:00:26,080 quá trình mà có thể bot bao giờ kết thúc. 10 00:00:26,080 --> 00:00:30,490 Nhưng chừng nào chúng ta có một cái gọi là trường hợp cơ sở, điều kiện đảm bảo 11 00:00:30,490 --> 00:00:34,930 mà trong một số trường hợp chúng tôi không gọi mình, rằng quá trình khác 12 00:00:34,930 --> 00:00:37,070 vòng lặp vô hạn nên chấm dứt. 13 00:00:37,070 --> 00:00:39,180 >> Bây giờ hãy reimplement sigma như sau. 14 00:00:39,180 --> 00:00:43,810 Nếu n là nhỏ hơn hoặc bằng 0, tôi đơn giản, và có phần tùy tiện, 15 00:00:43,810 --> 00:00:45,670 sẽ trở về 0. 16 00:00:45,670 --> 00:00:49,370 Khác những gì tôi sẽ làm thực sự là tính sigma cho int tích cực 17 00:00:49,370 --> 00:00:50,460 mà tôi đã được giao. 18 00:00:50,460 --> 00:00:52,050 >> Bây giờ, sigma của m là gì? 19 00:00:52,050 --> 00:00:55,480 Vâng, sigma của m là, tất nhiên, tổng của 1 lên thông qua m. 20 00:00:55,480 --> 00:00:58,820 Nhưng nếu chúng ta nghĩ về nó theo cách khác, nó chỉ đơn giản là tổng của m cộng với m 21 00:00:58,820 --> 00:01:02,560 trừ 1 cộng trừ 2 m và vv, tất cả các con đường xuống 1. 22 00:01:02,560 --> 00:01:08,080 Vì vậy, trong ý nghĩa đó, có vẻ như là Tôi chỉ đơn giản là có thể trở lại cộng với m. 23 00:01:08,080 --> 00:01:10,210 >> Và sau đó tôi cần m trừ 1 cộng trừ m 2. 24 00:01:10,210 --> 00:01:13,470 Nhưng tôi có một chức năng có thể cung cấp tôi chính xác câu trả lời, cụ thể là 25 00:01:13,470 --> 00:01:16,340 sigma của m trừ đi 1. 26 00:01:16,340 --> 00:01:19,670 >> Bây giờ, gọi bản thân mình theo cách này không có vẻ như ý tưởng tốt nhất. 27 00:01:19,670 --> 00:01:22,610 Bởi vì nếu gọi sigma sigma mà các cuộc gọi sigma trong đó kêu gọi sigma, bạn 28 00:01:22,610 --> 00:01:24,480 sẽ nghĩ rằng quá trình này có thể không bao giờ kết thúc. 29 00:01:24,480 --> 00:01:27,720 Nhưng đó là lý do tại sao chúng tôi đã có cơ sở cái gọi là trường hợp ở trên cùng của chức năng này. 30 00:01:27,720 --> 00:01:31,540 Nếu điều kiện để kiểm tra nếu m là nhỏ hơn hoặc bằng 0 Tôi sẽ không 31 00:01:31,540 --> 00:01:32,610 gọi bản thân mình. 32 00:01:32,610 --> 00:01:37,010 Tôi thay vì sẽ trở về 0, trong đó lần lượt sẽ được thêm vào 33 00:01:37,010 --> 00:01:39,950 số trước mà chúng tôi đã tổng hợp lên, do đó ngăn chặn này 34 00:01:39,950 --> 00:01:41,740 quá trình nếu không vô hạn. 35 00:01:41,740 --> 00:01:43,710 >> Bây giờ hãy xem mới này hoạt động thực hiện. 36 00:01:43,710 --> 00:01:46,510 Hãy tiết kiệm, biên dịch, và chạy chương trình này. 37 00:01:46,510 --> 00:01:50,640 Làm cho sigma 1 dấu chấm giảm sigma 1. 38 00:01:50,640 --> 00:01:52,900 Và chúng ta hãy cung cấp cho nó với con số tương tự như trước đây. 39 00:01:52,900 --> 00:01:55,520 2, hy vọng sẽ cho tôi 3. 40 00:01:55,520 --> 00:01:58,970 Hãy cung cấp cho nó 3, hy vọng sẽ cung cấp cho tôi 6. 41 00:01:58,970 --> 00:02:03,480 Và để cuối cùng của nó cung cấp với 50, mà thực sự mang lại cho tôi 1.275. 42 00:02:03,480 --> 00:02:06,130