Всем привет! Вобщем тут такое дело , стал я изучать программирование на С++ , но через некоторое время понял что в програмировании без математики никуда. А в математике я полный дятел. Поэтому хочу попросить грамотных людей помочь мне подобрать примерную программу из книг по математике(желательно из тех что есть в сети) которые нужно в первую очередь изучить кодеру Гм... что-то громко сказано насчёт программы. Ну вобщем смысл вы поняли - что надо читать.
какие проблемы идешь в библиотеку и гребешь все что есть по матанализу, высшей алгебре, дискретной математике, аналитической геометрии, топологии. читаешь(не лежа). а да задачники тож надо брать
Вот-вот о том - то и речь. На кой мне нужна топология , аналитическая геометрия , матанализ? Они по моему с кодингом почти не связаны. Да и потом откуда я знаю какого автора надо брать , ведь одно и то же можно изложить по-разному. По этому и прошу поделиться опытом
stels Ты сначала скажи, что ты собираешься писать, для чего тебе математика понадобилась? Подавляющее большинство программистов отлично обходится школьным курсом. А дальше начинается специализация: если работаешь с криптографией - учи алгебру и теорию чисел, если с графикой - аналитическую геометрию и т.д. Все сразу делать сложно, это уже будет все равно как на математика учиться
Я вобще ума не приложу как математика может быть ненужна, за какую не возьмусь, для общего развития, очень быстро находит применение. Но вобще в первую очередь по универсам будет волновать дискретная и конечная математика, в силу возможностей аппарата реализации моделей. В конечном счёте IMHO нет математики в программировании, т.к. программирование и есть прикладная математика даже если кому то реально программирующему это так не кажется. Но вобщем для начала нужно - во первых перевести вообще занятия математикой из "запоминания" в "понимание", т.к. в реальности ничтожный процент программистов делающих что то реальное имеет счастье получать готовые мат. модели, в подавляющем большинстве нам самим (хотя и с помощью заказчиков) приходится подбирать, составлять и т.п мат. модель под задачу. Т.е. нужно учится выводить, доказывать, иначе получать следствия и проверять. На практике (при необходимости радикальных оптимизаций) наиболее эффективным оружием которым нужно овладеть будет метод мат. индукции, который если повезёт с предположением и докажешь по ней может всести миллионы ненужных итераций циклов к нескольким последовательным операциям. Во вторых Из "общих" для любого из направлений наверно пригодятся - Логика, мат.логика (с вытекающими булевыми алгебрами), множества, отношения (в частности функциональные) Это постоянно требуется, нужно уметь определять универсы, на них области определений и области значений, выделять, группировать, искать пересечения, и т.д. и т.п. элементарное ветвление предпологает что ты должен владеть логикой чтоб по 10 раз не проверялось то что уже проверено или чего в этой ветви быть вообще никак не может. -Арифметика от базовых алгоритмов до высшей арифметике (теории чисел) просто на каждом шагу в серьёзных задачах. Особо нужна в криптографии и любом направлении если занимаешься на низком уровне. На низком уровне (если ты пишешь сам а не у других сдиравешь) у тебя будут лишь базовые арифметико-логические операторы и нужно самому составлять из них вычисления. Это самая база. Арифметику лучше Киселёвскую с нуля всю прочитать. "Систематический курс арифметики" он не законы провозглашает, а объясняет. Вообще были чудесные книжки серии "Популярные лекции по математике" по 30-40стр. каждая где почти в каждой книжке что тебе пригодится (Помню как раз по теме "Метод мат. индукции", "Системы счисления", "Метод Монте-Карло" и т.п.) в них и качественно и популярно описывалось. IMHO.
The Svin , спасибо , очень обстоятельно.Вобщем насколько я понял изучать надо в таком порядке: Арифметика,теория чисел ,дискретная математика.А как насчёт высшей математики , она нужна кодеру? Теперь что я не понял - метод мат. индукции,мат.логика,отношения (в частности функциональные) - это к каким разделам математики относится? Да такие бы книжки не помешали , особенно про счисления. Только их у нас скорее всего не купишь , может они в сети где-нибудь есть? Да и ещё я тут недавно одну книгу видел - "Конкретная математика" Кнута - это что за зверь?
Под высшей математикой обычно понимают дифференциальное и интегральное исчисление (кто не понимает, понимают термин высшая неправильно, полагая очевидно, что это синоним выражения "более сложная чем элементарная" - вобщем это не так, просто назвали почему то часть мат. аппарата "высшей математикой" фиг его знает почему, я так и непонял) Нужно когда задачи решаются через деффуры или интегралы Теория чисел это часть арифметики. Иногда те кто пологают под арифметикой арифметику преподоваемую в 1-2 классе называют "Теорию чисел" "Высшей арифметикой" вобщем толком не объясняя что тогда с их точки зрения "Низшая" и "Средняя". Чтобы путаницы небыло можно сказать так, классическая математика влючает в себя разделения на три очень условно группирующиеся объекты иследования Числа - этим занимается арифметика Отношения между величинами - этим занимается алгебра Свойства фигур - этим занимается геометрия. Но реально обычно в каждой из них в практике присутвуют элементы остальных двух. Например "Аналитическая геометрия" (без которой тебе не обойтись как правильно сказали если ты собираешься заниматься активно графикой) "рисует фигуры" алгебраическими формулами (которыми как раз и удобно кодировать фигуры, потому что у процессора нет оператора "циркуль" у него только сложить, вычесть, умножить, разделить и т.п. и тебе прийдётся "рисовать" круги этими операторами). Это к мат. логике и относится. Но в кратном изложении обычно даётся в курсах "Дискретной математики" Там обычно так множества, отношения, мат.логика даётся в связке, на основных свойствах которые при этом описываются идёт обычно разветвления углубления в булевы алгебры и логическое управление по одной ветке и топологию по другой. Потом обычно опять связки делают. Сам термин "Дискретная математика" очень по разному понимают математики, некоторые вообще на моём опыте непризнают это как какую-то дисциплину а считают что это типа заголовка под универсальным набором знаний который обычно нужен кибернетикам (как ты говоришь - кодерам). Она полезная книжка только не думаю, что с неё нужно начинать, может показаться сложноватой для начала. Само название "Конкретная" - это шутливое обозначение слов "continue" - непрерывная и "discrete" - дискретная. Но если не углублятся в рассказы, то там вобщем ничего, что не пригодится (т.е. лишнего) для "кодера" нет Некоторые из них точно есть нужно смотреть где нить на h66p://lib.mexmat.ru или h66p://www.mccme.ru/free-books/
Большое спасибо! Щас буду качать. Вчера открыл учебник Новикова по дискретике - было такое впечатление как будто я его читаю не сначала , а с середины.Много разных условных обозначений и определений , которые я не понимаю , интересно в других учебниках они объясняются? З.Ы. Кажись форум того, глючит немного , ни разу не смог залогинится , хотя сообщения о неверном пароле не поступало.Пришлось заново регистрироваться.
Во всех учебниках, которые следуют элементарным правилам математической культуры (в основании к которых простая здравая цель - быть правильно понятым и избавится от двусмысленности), термины и обозначения разъясняются до их применения. Исключением явлются труды которые являются логическим продолжением некой вводной части, где уже термины были объяснены. Например, если ты возьмёш того же Кнута (проффесор не чета Новикову, но разъяснением не гнушается), то он пишет, что предпологает, что читатель знаком с элементарными свойствами сложения, вычитания, деления и умножения. Поэтому в своей книге он не разъясняет что + это знак сложения. Но как только он переходит к другим темам, то все термины и нотация разъясняются, даже если можно предположить, что люди раз уж взялись за его книгу (отнюдь не детсадовского уровня) скорее всего должны знать и нотацию и смысл терминов. Вобще математика это исскуство из элементарных вещей последовательно выводить сложные, которые после вывода уже тоже становятся элементарными. Для неё неясность или двусмысленность смертельна.
Похоже там все файлы битые , а жаль. Можно ещё один вопрос , последний , а что такое язык исчисления предикатов и к чему он относится , Новиков говорит что он на нём всё объясняет , и все математики должны его знать
Здесь попробуй hххp://www.math.ru/lib/ser/plm. Одну сгрузил, всё нормально ) Это что вид мазахизма такой? Зачем ты себя мучаешь и читаешь книжку в которой всё непонятно? Ненужна она тебе, а может и вредна (там тучка ошибок, когда в предмете ещё не разбираешься эти ошибки могут просто травмировать) Исчисления предикатов относятся в общем смысле к логике, и в частности активно используются в мат. логике и теории множеств. Например базовое импликационное выражение Не ем свиней, значит не люблю свиней. (Можно записать как NOT(Е) -> NOT (Л)) Приведёт к трём возможным истинным NOT(E) -> NOT (Л) <=> 1->1 Истина (не ем, не люблю) E -> Л <=> 0->0 Истина (ем значит люблю) E -> NOT(Л) <=> 0->1 Истика (ем значит не люблю) И выявит что следующее выражение как 100 пудово ложное: NOT(E) -> Л <=> 0->1 Ложь (не ем значит люблю) Не возможно заниматься математикой "вообще", всегда чем то частным занимаешь. Возьмись за арифметику, например, сначала. Причём то что возможно старайся опробывать в кодировании, хотя бы в программах результат которых будешь наблюдать просто в дебагере. Вот Киселёв подойдёт. У него арифметика занимает полную книжку. Начинается с систем исчисления как раз. По его объяснениям можешь составлять простые алгоритмы, адаптируя их к возможностям процессора и своим ограничениям. Потом можно чуть посложнее взять. Хорошая увлекательная книжка "Введение в теорию чисел и алгоритм RSA", (Каутильо кажется? португалец вобщем какой-то". Там очень ясно пишется, причём даны алгоритмы на "человеческом языке" как у Кнута. Дальше возьмёшь какой-нить систематический курс по мат.логике (их много лежат некоторые hxxp://www.mccme.ru/free-books/) необязательно браться за то что есть, скачай один, потрудись над ним - не пошло - попробуй другой. А Новикова это винигрет обо всём и не о чём ясно и подробно. Заниматься по такой книге - самоистезание. Во первых создастся субъективное ощущение что очень мало выучил, потому как на раскрытие сложных тем даётся всего по нескольку страниц. Во вторых если что-то выучил, будет на самом деле вопреки ему а не благодоря, причём ощущение уверености не будет. Чтобы появилось ощущение понимания и уверености - нужно решать по Многу задач, 20-30 в день минимум. Столько решить (или хотя бы рассмотреть) задач если каждая из них на 90% новая и решается со скрипом - невозможно. Поэтому нужно брать книгу с расположением материала с так называемой "слабой прогрессией задач", где новизна следующей задачи даётся по чуть-чуть. Как не странно - это самый быстрый путь. Важно то не сколько тем проскакал - а сколько понял, и вообще нужно приучить себя что занятие математикой это не какой-то "этап", который прошёл (выучил) и выкинул из своей жизни, это новый образ жизни. Хочешь программировать - значит нужно научится комфортно жить в условиях когда основная деятельность - это именно с удовольствием вычленять для себя задачку, и решать её и в большей мере это задачки математические. Вся остальная деятельность - это как раз наиболее скучная деятельность программиста - читать справочную литературу (и там тоже приходится часто систематизировать, а это тоже математика, математика это не "бухгалтерия" с калькуляторами и нудным счётоводством, это наука "о порядке и мере" которая пытается систематизировать хаос в простую и ясную картинку) Вывод - начинать нужно с того, что более менее получается, и не насиловать себе тем что никак не идёт. Только отвращение ко всему и заработаешь.
The Svin Спасибо за ваш труд, за то что вы находите время написать такие вещи и судя по постам у вас душа за людей болит! Эх... мало людей таких осталось...