Конечные и бесконечные суммы, Ч. 1
Допустим, мы хотим посчитать сумму целых всех чисел от 1 до n.
Что, если мы хотим посчитать сумму всех чисел от 1 до миллиона?
Тогда, пожалуй, этот код выполнится миллион раз.
Давайте взглянем на эту сумму более абстрактно и попробуем её упростить.
У нас получилась простая формула, чтобы легко посчитать сумму от 1 до n.
Давайте перепишем её на язык программирования и сравним предыдущее количество операций и текущее.
Итого, одно сложение и два умножения против... миллиона сложений + миллиона итераций i и проверки условия цикла. Очевидное преимущество.
Хорошо, допустим, у нас есть более сложная задача - мы хотим найти сумму... Всех чётных элементов от 2 до n, где n - последний чётный элемент.
Для этого нам нужно написать цикл:
Итого тело цикла будет выполнено n/2 раз.
Давайте ещё раз взглянем на проблему абстрактно, и попытаемся её упростить.
В итоге задача снова превращается в простейшую.
А как быть с нечётными?
Ну, тут можно пойти по тому же пути, а можно сократить.
А что, если мы хотим посчитать сумму целых чисел от k до n?
А что, если мы хотим получить сумму чётных чисел от k до n?
Нечётных?
Пишите свои идеи в комментариях.
Всего комментариев 8
Комментарии
09.01.2019 16:32 | |
Хороший вопрос.
Проблема, как я понимаю, в постсоветской системе образования. Учителя не учат вас думать логически и интуитивно, а пытаются заставить вас зазубрить материал, который у них написан в графике. В итоге, смысл всей вашей школьной учёбы сводится к успешной сдаче экзамена и забывании непонятного материала как страшного сна. Касательно применения. Да, это меня смущает. Поверьте, если бы я был вашим школьным учителем математики, и мне бы дали преподавать подобную тему, я бы начал её с вопроса в подобном виде: И в итоге мы прийдём к сумме всех целых чисел от 1 до 1'000'000 Однако здесь я не пытаюсь быть учителем, а скорее товарищем, который пытается заинтересовать программистов алгеброй и абстрактным мышлением. Лично мне подобная задача в программировании не встречалась, однако здесь я не пытаюсь дать формулу и заставить её заучить, а показываю процесс её изобретения. То, что у нас получилось в итоге - это инструмент, который может помочь в решении более сложных задач, которые могут вам встретиться в программировании более оптимальным путём(без использования миллионных циклов). То, что здесь интересно - это именно то, как мы с помощью простых арифметических операций получаем эти формулы, которые сначала могут показаться какой-то магией, пока вы сами не научитесь их выводить из имеющихся в вашем мозгу данных, которые вы считаете доказанными для самого себя и логически обоснованными. Математика - это не просто набор формул, а наука, которая базирует сложные понятия на элементарных. В самом низу могут находиться простые вещи, вроде сложения, вычитания, умножения, деления, на них базируется возведение в степень, на возведении в степень базируется извлечение корней, после того, как люди научились извлекать корни, они осознали, что числовая ось на самом деле должна быть двумерна (об этом рассказывают в лекциях про комплексные числа). Все понятия вроде производной, интегралов также базируются на простых вещах, которые при желании можно вывести самому, но открывают целый мир возможностей в физике, экономике, ИИ, инженерии, ну и элементарного понимания физических законов простыми приземлёнными, но любопытными людьми. Вот, к примеру: понятие производной базируется на понятии предела. Само по себе понятие предела в физике не используется, но оно необходимо, чтобы понять производную, то, как к ней пришли первооткрыватели. И такое можно заметить повсеместно. Вещи обретают практический смысл только, когда на них основывается что-либо более сложное. Так и суммы натуральных чисел. Однако! Если вам интересно, я могу попробовать побыть учителем математики, и попытаться заинтересовать вас с точки зрения простеньких задачек, которые могут быть вполне воображаемыми, но имеющими место в реальном мире. |
|
Обновил(-а) ZackMercury 09.01.2019 в 17:09
|
09.01.2019 18:59 | |
Простейшие формулы геометрических и арифметических прогрессий. А ты вот такое выведи (решение там же)
|
09.01.2019 23:58 | |
Что-ж, потратил на перезапись несколько часов.
Буду ожидать отзывов здесь и в комментах YouTube https://www.youtube.com/watch?v=i6WYtdwASog Простите за звук. Простите за качество. |
10.01.2019 01:45 | |
Ладно, всё-таки опубликую отдельным блог постом, чтобы привлечь больше внимания.
|
Последние записи от ZackMercury
- Вывод формулы для бесконечного цикла. (11.01.2019)
- Как заменить цикл на формулу. (10.01.2019)
- Конечные и бесконечные суммы, Ч. 1 (08.01.2019)
- Как легко запомнить тригонометрические функции (07.01.2019)
- Движение по треугольнику, квадрату, пентагону, хексагону, ... (05.01.2019)