1 00:00:00,000 --> 00:00:03,110 >> СПИКЕР 1: В этом последней версии сигма, я реализовал то, что я назвал бы 2 00:00:03,110 --> 00:00:06,570 итерационное решение, в результате чего я использовал вперед петля подсчитать все 3 00:00:06,570 --> 00:00:09,720 числа от 1 до м, после этого возвращая сумму. 4 00:00:09,720 --> 00:00:12,560 >> Но, оказывается, мы можем использовать другой Техника для реализации в том же 5 00:00:12,560 --> 00:00:15,120 Функция, метод, известен как рекурсии. 6 00:00:15,120 --> 00:00:19,360 Рекурсивная функция, так сказать, просто тот, который называет себя. 7 00:00:19,360 --> 00:00:21,290 Теперь, само по себе, что могут быть проблемы. 8 00:00:21,290 --> 00:00:24,500 Если функция просто называет себя, которые называет себя которая называет себя, 9 00:00:24,500 --> 00:00:26,080 что процесс может бот когда-нибудь закончится. 10 00:00:26,080 --> 00:00:30,490 Но пока мы включают так называемый базовый вариант, условие, которое обеспечивает 11 00:00:30,490 --> 00:00:34,930 что в некоторых ситуациях мы не называем сами, что процесс в противном случае 12 00:00:34,930 --> 00:00:37,070 бесконечное зацикливание должно быть прекращено. 13 00:00:37,070 --> 00:00:39,180 >> Давайте теперь переопределить сигма следующим образом. 14 00:00:39,180 --> 00:00:43,810 Если п меньше или равно 0, я просто, и несколько произвольно, 15 00:00:43,810 --> 00:00:45,670 собирается возвращать 0. 16 00:00:45,670 --> 00:00:49,370 Остальное, что я собираюсь сделать, это на самом деле вычислить сигма для положительного междунар 17 00:00:49,370 --> 00:00:50,460 , что я передал. 18 00:00:50,460 --> 00:00:52,050 >> Теперь, что сигма м? 19 00:00:52,050 --> 00:00:55,480 Ну, сигма т, конечно, сумма 1 через м. 20 00:00:55,480 --> 00:00:58,820 Но если мы думаем об этом по-другому, это просто сумма м плюс м 21 00:00:58,820 --> 00:01:02,560 минус 1 плюс минус 2 м и т. д., все, вплоть до 1. 22 00:01:02,560 --> 00:01:08,080 Так что в этом смысле, кажется, что Я мог просто вернуться M Plus. 23 00:01:08,080 --> 00:01:10,210 >> А потом мне нужно м минус 1 плюс 2 м минус. 24 00:01:10,210 --> 00:01:13,470 Но у меня есть функция, которая может дать мне точно, что ответ, а именно 25 00:01:13,470 --> 00:01:16,340 сигма т минус 1. 26 00:01:16,340 --> 00:01:19,670 >> Теперь, называя себя таким образом не походить на лучшую идею. 27 00:01:19,670 --> 00:01:22,610 Потому что, если сигма называет сигма который вызывает сигма которая призывает сигма, вы 28 00:01:22,610 --> 00:01:24,480 было бы думать, что этот процесс никогда не может закончиться. 29 00:01:24,480 --> 00:01:27,720 Но именно поэтому у нас был так называемый базу случай в верхней части этой функции. 30 00:01:27,720 --> 00:01:31,540 Если условие, которое проверяет, если т меньше или равно 0 Я не собираюсь 31 00:01:31,540 --> 00:01:32,610 называть себя. 32 00:01:32,610 --> 00:01:37,010 Я вместо собирается возвращать 0, которые в свою очередь, будут добавлены к 33 00:01:37,010 --> 00:01:39,950 предыдущие цифры, которые я суммирования вверх, таким образом останавливая это 34 00:01:39,950 --> 00:01:41,740 в противном случае бесконечный процесс. 35 00:01:41,740 --> 00:01:43,710 >> Давайте посмотрим, если это новое реализация работает. 36 00:01:43,710 --> 00:01:46,510 Спасем, компиляции и запустить эту программу. 37 00:01:46,510 --> 00:01:50,640 Сделать сигма 1 точка слэш сигма 1. 38 00:01:50,640 --> 00:01:52,900 И давайте предоставить ему те же номера, что и раньше. 39 00:01:52,900 --> 00:01:55,520 2, которые, будем надеяться, дать мне 3. 40 00:01:55,520 --> 00:01:58,970 Давайте предоставить ему 3, что я надеюсь дать мне 6. 41 00:01:58,970 --> 00:02:03,480 И давайте, наконец, обеспечить его 50, которая действительно дает мне 1275. 42 00:02:03,480 --> 00:02:06,130