127

Про математику и программирование1

Небольшое наблюдение о том, как важна математика программисту. Я изучал язык программирования Python с помощью программы, скаченной на Goodle Plays (май инглиш ис вери бэд). Там было одно задание, которое должно было научить азам, пользованию циклами, а задание такое - "сложите все цифры от 1 до N, точнее напишите программу, которая сделает это за вас". Скорее всего разработчики ждали что-то такое (циклы же):

S=0

while i<N:

S=S+i

i+=1

Но мы же в школе все изучали математику, поэтому я вспомнил формулу ряда натуральных чисел, тогда программа работает вообще без циклов:

S=N(N+1)/2

Здравия желаю))) Слова о том, что программист не может без знания математики, не беспочвенны

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

Вы смотрите срез комментариев. Показать все
7
Автор поста оценил этот комментарий

Насколько я понимаю, это очень узкий взгляд на программирование на этапе старта.
1. Задачи типа факториалов, использование циклов, рекурсий, ставятся не для решения математической задачи - нахождение значения функции, а для усваивания принципов программирования и умения работать в ограниченных условиях задачи.
Все алгоритмы сортировки, знать не обязательно - подключил библиотеку и пользуйся. Но что там под капотом - лучше понимать (зачем? - другой вопрос и большая тема)

2. Далеко не все программисты программируют сложные вычислительные системы. Очень часто, думаю что более 90% (но это не точно) - это банальные вычисления для банальных задач типа "повторить 5 раз и передать значение". Где гораздо дешевле использовать просто навыки программирования и арифметику, не задействовав сложную математику и дорого профессора кафедры, чтобы автоматизировать процессы, которые задалбывает пользователя повторять 10 раз в день.

3. По большей части под капотом системника в упрощенной функции, происходит всё тоже самое, что и расписанной в начальном примере построчным кодом.
Не задумывались, что компьютер не пользуется таблицей умножения, а считает все по сути "палочками" 2+2 = (1+1)+(1+1), 2*3 = (1+ 1) + (1+1) + (1+1). (ну, там тоже есть свои математические штучки, но не все так красиво, как кажется ТСу).


4(-). И если критична скорость вычислений, настолько, что нужно использовать навыки высшей математики, то это все же не пайтон.

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

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Ге-ни-аль-но! Ты думал, я не знал, зачем такие задачи? Да у меня прямо сейчас есть пример задачи, которая "не для обучения циклам и остальной фиговине" При этом решается горой циклов, но математически решается проще

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку