Необходимые математические навыки для книги Введение в алгоритмы (CLRS) [закрыто]

30

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

Я не уверен, мне нужно обновить математические навыки, прежде чем читать эту книгу или нет? (Я почти забываю математику, которую изучаю в старших классах и колледжах). Если этой книге нужны глубокие знания по математике, предложите, пожалуйста, предметы, которые принесут пользу

Я хочу узнать о реализации, разработке и анализе алгоритмов.

анонимное
источник
1
Вот отличный ресурс, чтобы обновить свои навыки, если вы захотите. khanacademy.org
Алан Б. Ди

Ответы:

23

Курс MIT, в котором используется книга CLR, имеет определенный обязательный курс. Учебник, используемый этим обязательным курсом, доступен бесплатно.

Вот:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/

Обязательный курс обязательного курса - исчисление с одной переменной.

user16764
источник
9

Как @ user16764 ссылается на конкретные предложения курса MIT (6.042) , версию того, что обычно называют дискретной математикой. , в сочетании с исчислением первого года (университета) уровня являются основными требованиями для понимания многих (основных) алгоритмов и их анализ.

Специализированные или продвинутые алгоритмы могут потребовать дополнительных или расширенных математических знаний, таких как статистика / вероятность (научное и финансовое программирование), абстрактная алгебра и теория чисел (т.е. для криптографии).

Будучи студентом, у моего курса по дискретной математике был учебник « Дискретная математика с приложениями » Сюзанны Эпп, а другой учебник, который я нашел в своей библиотеке, был « Дискретная математика » Кеннета Росса и Чарльза Райта. Достаточно качественная использованная копия одного из них, вероятно, является разумным местом для начала (с или без использования MIT Open Course Ware, в зависимости от вашего стиля обучения). Для самообучения я часто нахожу, что наличие двух источников, на которые можно сослаться, может помочь прояснить моменты, которые у меня возникают проблемы с пониманием.

Предложенная мною альтернатива - « Конкретная математика» , второе издание Рональда Л. Грэма, Дональда Э. Кнута и Орен Паташник. Я не могу найти свою копию на данный момент, и не усердно проработал ее, поэтому не могу дать рекомендации за или против.

Из предисловия:

Но что конкретно представляет собой конкретная математика? Это смесь непрерывной и дискретной математики. Конкретнее, это управляемое манипулирование математическими формулами с использованием набора методов для решения задач.

В этой записи блога « Книги, которые программисты на самом деле не читают », я буду принимать к сведению проклятые комментарии Билла Ящерицы . Лично я все еще нахожу Алгоритмы Роберта Седжвика (теперь 4-е изд.) Менее пугающими и более доступными.

Что касается непрерывной (то есть действительных чисел) части математики, исчисление Стюарта, кажется, часто используется для чтения лекций студентам о просвещении, которое происходит от дифференциации и интеграции.

mctylr
источник
6

Это не столько математика как таковая, сколько комфорт и беглость с математическим формализмом. Изучите базовую терминологию и соответствующий формализм.

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

Билл В.Б.
источник
1

Я полагаю, что вы готовы, если вы не озабочены «анализом» алгоритмов, а не только их реализацией. Этот курс обычно для нас и UD математика или CS курс в большинстве учебных программ колледжа.

Просто понимание того, как реализовать алгоритмы в этой книге, не должно быть проблемой

Дуг Стэнли
источник
Я тоже хочу узнать об анализе алгоритмов. Пожалуйста, дайте мне предложения. :)
Аноним
@ Аноним В этом случае я думаю, что нет другого выбора, кроме как укусить пулю. Я начал учить себя дискретной математике, но вскоре ошеломился и ушел, попробовав легкий путь, создав «популярные» книги по структурам данных и алгоритмам, но обнаружил, что реальная сделка отсутствует. Сейчас я собираюсь набраться смелости и начать все сначала.
ankush981