Python

Темы математики для программиста

Здравствуйте, перехожу в 9 класс. Этим летом решил заняться изучением языка программирования Python.
Учил и решал задачи по 5-7 часов в день на протяжении 4 дней. Почти дошёл до алгоритмов и понял, что программисту нужна математика ( кроме того, кто пишет сайты)
Так вот, суть вопроса в том, что какие темы математики нужно начать проходить, что бы без проблем продолжить изучать Python, прочитал в интернете, что допустим у тех же аналитиков данных используется высшая математика из вузов.
  1. Какие темы математики начать изучать для программирования?
  2. Как лучше начать изучать (видеоуроки/книги/лекции/)
  3. И с чего начать изучать, что бы мне, как школьнику, который переходит в 9 класс можно было понять и разобраться
Что это значит "программисту нужна математика (кроме того, кто пишет сайты)"? Вам то что нужно, если Вы конкретно Питоном занимаетесь?
Хотите написать калькулятор определённых интегралов одномерных функций, пиши́те так:
 from math import* 
while True:
try:
fun, a, b, n = input('f(x) a b n: ').split()
f, a, b, n = lambda x: eval(fun), float(a), float(b), int(n)
h = (b - a) / n; hp = h / 2; u, v = f(b - hp), 0
for i in range(1, n): x = a + i * h; u += f(x - hp); v += f(x)
print((f(a) + f(b) + 4 * u + 2 * v) * h / 6)
except: continue
Так берутся даже плохо сходящиеся несобственные интегралы вроде, например, такого вот:
∫(-∞;+∞)(sin(x)/x)dx = π
Для задач линейной алгебры и прочих областей математики есть такие средства как math, numpy, random и т.д. Вот как, например, находятся нули одномерных функций:
 from math import* 
while True:
try:
fun, x = input('f(x) x: ').split()
f, x = lambda x: eval(fun), float(x)
h, d, X = 1e-4, 2e-4, [x]
for i in range(1, 1000000):
x -= f(x) * d / (f(x + h) - f(x - h))
if x in X: break
else: X.append(x); print('%6d)%22.16f' % (i, x))
except: continue
Пример использования:То есть при помощи такого вот маленького скриптика можно решать потенциально бесконечно большое количество уравнений методом касательных, то есть с хорошей точностью и быстро. Нет проблем, чтоб и другие методы решения уравнений и систем задействовать.
Если Вам надо организовать поток нормально распределённых величин пи́шите так:
 from random import normalvariate as N 
и используете функцию генерации с.в. с распределением Гаусса-Лапласа N(μ,σ²) как Вам только заблагорассудится.
Если надо решать диффуравнения (обыкновенные или в частных производных) в Питоне для этого уже всё готовое есть, если Вы, конечно, какой-то свой экспериментальный метод не аппробируете. Вот программа получения узлового решения интегрального уравнения Фредгольма второго рода:Опять же - скриптик небольшой, зато позволяющий решать потенциально бесконечное количество интегральных уравнений. Но тут, правда, numpy используется, а поэтому и программа такая маленькая. Так Вас никто и не заставляет писа́ть программы для решения классических задач линейной алгебры (решение СЛАУ, определение собственных чисел матрицы и т.д.) - за Вас это всё уже давно написано. Кстати, а зачем Вам интегральные уравнения в девятом классе?
Если б Вы программировали, скажем, интеллектуальные настольные игры (калах, нарды или техасский покер) вот тогда бы Вам точно потребовалось кое-что из математической теории принятия решений в условиях риска и активного противодействия.
Андрей Сурин
Андрей Сурин
66 572
Лучший ответ
Дискретная математика и теория множеств. Берешь университетские учебники для 2-го курса и вперед. Правда, в 9-м классе оно будет немного сложноватенько...
Вася Греба
Вася Греба
65 505
Тем, кто пишет сайты, тоже нужна математика, причём много

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

Из книг для начального уровня по программированию посоветовала бы книгу "Песни о Паскале" (бесплатная, скачивается). Это азы, до-математический уровень. После него обычно берутся за "Алгоритмы и структуры данных" Н. Вирта, но для 9-го класса это будет сложновато

Ещё, если потянешь, можешь посмотреть в сторону бесплатных курсов от Сириус. Правда, проверщик программ там идиотский, не пишет в чём именно ошибка (а это не то что для новичка, это для практикующего программиста плохо, попробуй пойми что требуется сделать)
ЭР
Эдуард Рябов
79 461
Паша Старакожев Спасибо, попробую разобраться
Алгоритмы изучаются в математике! Вот и изучай их!
Я бы советовал начать с учебника программирования. Именно программирования, а не просто языка. И не парься пока по поводу математики.
YS
Yurii Stratetshuk
17 671
Паша Старакожев Ну я сначала проходил курс, потом стал читать книгу "Укус питона", потом увидел книгу Грокаем Алгоритмы.
Посоветуете какие нибудь книги, если не сложно?