Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > ZackMercury

Оценить эту запись

Конечные и бесконечные суммы, Ч. 1

Запись от ZackMercury размещена 08.01.2019 в 16:11
Обновил(-а) ZackMercury 08.01.2019 в 16:44

Допустим, мы хотим посчитать сумму целых всех чисел от 1 до n.

Код AS3:
var sum:int = 0;
 
for(var i:int = 1; i <= n; i ++)
   sum += i;
Что, если мы хотим посчитать сумму всех чисел от 1 до миллиона?

Код AS3:
var sum:int = 0;
 
for(var i:int = 1; i <= 1000000; i ++)
   sum += i;
Тогда, пожалуй, этот код выполнится миллион раз.
Давайте взглянем на эту сумму более абстрактно и попробуем её упростить.

Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 33
Размер:	146.0 Кб
ID:	629

У нас получилась простая формула, чтобы легко посчитать сумму от 1 до n.
Давайте перепишем её на язык программирования и сравним предыдущее количество операций и текущее.
Код AS3:
var n:int = 1000000;
var sum:int = 0.5 * n * (n+1);
Итого, одно сложение и два умножения против... миллиона сложений + миллиона итераций i и проверки условия цикла. Очевидное преимущество.

Хорошо, допустим, у нас есть более сложная задача - мы хотим найти сумму... Всех чётных элементов от 2 до n, где n - последний чётный элемент.
Для этого нам нужно написать цикл:

Код AS3:
var n:int = 50;
var sum:int = 0;
for(var i:int = 2; i <= n; i += 2)
   sum += i;
Итого тело цикла будет выполнено n/2 раз.
Давайте ещё раз взглянем на проблему абстрактно, и попытаемся её упростить.
Нажмите на изображение для увеличения
Название: Снимок2.PNG
Просмотров: 31
Размер:	132.2 Кб
ID:	630
Название: Снимок3.PNG
Просмотров: 49

Размер: 50.2 Кб

В итоге задача снова превращается в простейшую.
А как быть с нечётными?
Ну, тут можно пойти по тому же пути, а можно сократить.

А что, если мы хотим посчитать сумму целых чисел от k до n?
А что, если мы хотим получить сумму чётных чисел от k до n?
Нечётных?

Пишите свои идеи в комментариях.
Всего комментариев 8

Комментарии

Старый 09.01.2019 07:14 Swer вне форума
Swer
 
Аватар для Swer
Цитата:
Допустим, мы хотим посчитать сумму целых всех чисел от 1 до n.
Нет не хотим.
Мне бы хотелось узнать для чего это нужно, где это можно применить ?
Когда я учился у нас был урок математики, преподаватель давал кучу формул и показывал их решение.
Мне казалось урок вместо 90 минут идет несколько дней. ( каждый раз перед началом думал сёдня я помру ). И как то раз я понял в чём проблема ! Учитель за урок давал нам кучу формул и показывал их решение, но не объяснял их применение И поэтому я не понимал что вообще происходит - зачем всё это нужно ? Поэтому в подобных записях я всегда в первую очередь ищу объяснение применения. Объясните
пожалуйста где мне это применить ???
Старый 09.01.2019 16:32 ZackMercury вне форума
ZackMercury
 
Аватар для ZackMercury
Хороший вопрос.
Проблема, как я понимаю, в постсоветской системе образования. Учителя не учат вас думать логически и интуитивно, а пытаются заставить вас зазубрить материал, который у них написан в графике.
В итоге, смысл всей вашей школьной учёбы сводится к успешной сдаче экзамена и забывании непонятного материала как страшного сна.

Касательно применения.
Да, это меня смущает. Поверьте, если бы я был вашим школьным учителем математики, и мне бы дали преподавать подобную тему, я бы начал её с вопроса в подобном виде:

И в итоге мы прийдём к сумме всех целых чисел от 1 до 1'000'000
Однако здесь я не пытаюсь быть учителем, а скорее товарищем, который пытается заинтересовать программистов алгеброй и абстрактным мышлением.
Лично мне подобная задача в программировании не встречалась, однако здесь я не пытаюсь дать формулу и заставить её заучить, а показываю процесс её изобретения.
То, что у нас получилось в итоге - это инструмент, который может помочь в решении более сложных задач, которые могут вам встретиться в программировании более оптимальным путём(без использования миллионных циклов).

То, что здесь интересно - это именно то, как мы с помощью простых арифметических операций получаем эти формулы, которые сначала могут показаться какой-то магией, пока вы сами не научитесь их выводить из имеющихся в вашем мозгу данных, которые вы считаете доказанными для самого себя и логически обоснованными.

Математика - это не просто набор формул, а наука, которая базирует сложные понятия на элементарных.
В самом низу могут находиться простые вещи, вроде сложения, вычитания, умножения, деления, на них базируется возведение в степень, на возведении в степень базируется извлечение корней, после того, как люди научились извлекать корни, они осознали, что числовая ось на самом деле должна быть двумерна (об этом рассказывают в лекциях про комплексные числа). Все понятия вроде производной, интегралов также базируются на простых вещах, которые при желании можно вывести самому, но открывают целый мир возможностей в физике, экономике, ИИ, инженерии, ну и элементарного понимания физических законов простыми приземлёнными, но любопытными людьми.

Вот, к примеру: понятие производной базируется на понятии предела.
Само по себе понятие предела в физике не используется, но оно необходимо, чтобы понять производную, то, как к ней пришли первооткрыватели.

И такое можно заметить повсеместно. Вещи обретают практический смысл только, когда на них основывается что-либо более сложное.
Так и суммы натуральных чисел.


Однако! Если вам интересно, я могу попробовать побыть учителем математики, и попытаться заинтересовать вас с точки зрения простеньких задачек, которые могут быть вполне воображаемыми, но имеющими место в реальном мире.
Обновил(-а) ZackMercury 09.01.2019 в 17:09
Старый 09.01.2019 18:59 Bletraut вне форума
Bletraut
 
Аватар для Bletraut
Простейшие формулы геометрических и арифметических прогрессий. А ты вот такое выведи (решение там же)
Старый 09.01.2019 19:08 ZackMercury вне форума
ZackMercury
 
Аватар для ZackMercury
Хехехе, это что, челлендж?
Нет, это не совсем формулы арифметических и геометрических прогрессий.
Это - сумма ряда натуральных чисел от 1 до n.
Тоесть, мы считаем не n-ный член ряда, а сумму всех элементов от 1 до n-ного члена.


Наслаждение математикой начинается только после интуитивного понимания её основ.
Если я начну статьи с чего-либо слишком сложного и непонятного, этим я точно никого не заинтересую.
Старый 09.01.2019 19:41 Bletraut вне форума
Bletraut
 
Аватар для Bletraut
Гораздо интереснее было бы видеть какую-то оригинальную задачу, а потом то как математика помогает с ней справиться. Голые формулы, пусть даже интересно описанные читать не особо интересно. Так же как и изучать что-то не понимая куда его потом можно применить и какой в нём смысл.
Старый 09.01.2019 23:58 ZackMercury вне форума
ZackMercury
 
Аватар для ZackMercury
Что-ж, потратил на перезапись несколько часов.
Буду ожидать отзывов здесь и в комментах YouTube
https://www.youtube.com/watch?v=i6WYtdwASog
Простите за звук. Простите за качество.
Старый 10.01.2019 00:45 ZackMercury вне форума
ZackMercury
 
Аватар для ZackMercury
Ой XD Последняя минута недозаписалась, когда я нажал на слеш, ибо он у меня ставит запись на паузу.
Но я надеюсь, видео всё равно получилось вдохновляющим.
В итоге числа оказались одинаковыми.
Старый 10.01.2019 01:45 ZackMercury вне форума
ZackMercury
 
Аватар для ZackMercury
Ладно, всё-таки опубликую отдельным блог постом, чтобы привлечь больше внимания.
 

 


Часовой пояс GMT +4, время: 07:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.