Как-то раз сидели мы в вегетарианском кафе с одним молодым (на порядок моложе меня) и талантливым математиком. Обсуждали конечно же математику и секс (кстати, на написание статьи во многом сподвиг меня именно он в тот вечер). Один из вопросов, который обсуждался — это список тем и книг, с которыми должен быть знаком начинающий математик на базовом уровне. Под базовым уровнем считается четвертый курс математической специальности. Поскольку я сам изучаю математику на 90% самостоятельно, я обратился к моему товарищу за советом: что изучать?

Информатика (Теория графов). Основные термины теории графов. Многие объекты, возникающие в жизни человека, могут быть смоделированы (представлены в памяти компьютера) при помощи графов. Например, транспортные схемы (схема метрополитена и т. Д.) изображают в виде станций, соединенных линиями. В терминах графов станции называются вершинами графа а линии – ребра.. Скачай приложение «Фоксфорд.Учебник» на свою платформу: Тысячи тем из школьной программы. Видеоразборы тем от лучших преподавателей России. Три уровня сложности: базовый, углубленный, олимпиадный.. Начните учиться в онлайн-школе Фоксфорд с лучшими преподавателями РФ. Учиться бесплатно. Модели случайных графов. Использование теории графов для распознавания образов. Математические методы в приложениях. Дискретная математика. Комбинаторная топология и теория графов в задачах и упражнениях. Многопроцессорные вычислительные системы. Графы в задачах анализа и синтеза структур сложных систем. Доказательства из Книги. Лучшие доказательства со времен Евклида до наших дней. Введение в теорию графов. Индивидуальные задания. Метод интеллектуального управления информационными ресурсами промышленного предприятия.

И он накидал мне список. Он попросил меня не упоминять его имени и фамилии в блоге, но список позволил опубликвать.

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

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

Теория представлений симметрической группы ( Фултон У. Таблицы Юнга и их приложения к теории представлений и геометрии.). Теория групп и алгебр Ли (связь с симплектической геометрией метод орбит Кириллова) ( Винберг Э.Б., Онищук А.Л.

Семинар по группам Ли и алгебраическим группам, Серр Ж.-П. Алгебры Ли и группы Ли, Хамфрис Дж. Введение в теорию алгебр Ли и их представлений, Кириллов А.А. Элементы теории представлений, Кириллов А.А. Лекции по методу орбит.). Теория квантовых групп, бесконечномерных алгебр Ли (алгебры Вирасоро, алгебры Каца-Муди) и групп петель, плюс начала теории вертексных операторных алгебр.

( Демидов E.E. Квантовые группы, Бурман Ю.М., Фейгин Б.Л. Бесконечномерные алгебры Ли — I: полубесконечные формы, алгебра Вирасоро и вертексные операторы, Кац В.Г. Бесконечномерные алгебры Ли, Прессли Э., Сигал Г. Группы петель). Введение в геометрическую теория представлений (извращенные пучки, геометрическая конструкция U(sln); ит.д.) ( Chriss N., Ginzburg V. Representation theory and complex geometry.) Коммутативная алгебра.

Анализ на многообразиях с привлечением пучков, векторные расслоения ( Вербицкого М. Курс Анализ-4 (НМУ), Ramanan S. Global calculas, Неструев Дж. Гладкие многообразия и наблюдаемые, Мищенко А.С. Векторные расслоения и их применение).

Ведение в операторные алгебры, некоммутативная геометрия Конна, применение операторных алгебр в топологии (общая идеология) ( Мерфи Дж. C.-алгебры и теория оперторов, Соловьев Ю.П., Троицкий Е.В. C.-алгебры и эллиптические операторы в дифференциальной топологии) Алгебраический анализ. Comment by — @. Там не то,чтобы совсем формулой,там местами поменялось. То есть сейчас вводится определитель как число по формуле и далее доказывается теорема о том,что определитель кососимметрическая,полилинейная функция и что любая кососимметрическая,полилинейная функция на мн-ве квадратных матриц имеет вид f(A)=f(E)det A.

Ранее же доказывалась теорема,где утверждалось,что такая ф-ция единственна,показывался её вид и она называлась определителем(коряво объяснил,извиняюсь,но поздно уже). Разница только в том,по сути,что теорему с определением местами поменяли, но то,как это было раньше,казалось мне более концептуальным. Я сначала не совсем правильно объяснил,да и сейчас туго,поздно,засыпаю,если что,то завтра объясню по-человечески что имел ввиду. Comment by measure0 — @.

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

Сотни страниц доказательств каких-то свойств каких-то групп, колец и полей — совершенно абстрактных, совершенно для студента первого курса неприложимых никуда. Это убьет любое желание разбираться с предметом. Прежде всегда должна быть мотивация, например какой-то простой и быстрый финт, который дает прикладной результат — это как раз то что надо (в данном случае направленный объем). Comment by measure0 — @. measure0, блин, мне порой кажется, что вы подкалываете. Ну давайте еще и теорию меры изложим на первом курсе, заодно с рассказом об аксиоме выбора и всех ее чудесных следствиях. Формально конечно количество теорем уменьшается, когда изложение идет от общего к частному.

Но проще это нифига ничего не делает на этапе обучения. Когда уже взрослый и знаешь, что к чему, то кажется, что да — все теперь понятно, надо было сразу фигарить группы Ли. Но попробуйте это объяснить первокурснику. Ну не получится.

Он еще не может понять, что не надо придумывать геометрических образов пространств высокой размерности, а вы ему «ковектор — это n-1-мерная плоскость в n-мерном пространстве». Да у него мозги взорвутся. Из экономии бумаги совершенно никак не следует экономия времени. Опять же по такой системе возможно обучение только если у студента нет выбора кроме как учиться, потому что интереса непонятные определения не добавляют.

Про приложения определителя — самое тривиальное это наличие обратного линейного преобразования. Конечно тоже абстрактно, но куда менее абстрактно чем всякие теоремы о группах. Ну а если чуть продвинуться, то тут уже совсем экономические приложения возникают в виде замены переменных в интегралах и определении знакоопределенности квадратичной формы. Comment by — @. Мне казалось, что меру и лемму Цорна в НМУ на первом курсе и рассказывают. Миша вот курс по теории меры читал. Да я не предлагаю фигарить группы Ли на первом занятии!

Все что я предлагаю это рассказывать линейную алгебру тогда, когда студент хоть немного соображает в математике. То есть все к чему я призываю это отказаться от линейной алгебры в первом семестре и вместо нее учить что-то такое, чтобы слова «эндоморфизм», «фактормодуль» и «алгебра» в курсе линейной алгебры не вызывали ступора. Существование обратного линейного оператора очевидно без всяких определителей, т.к. Это автоморфизм модуля. Замена координат в интеграле относится к ориентации на многообразии и, опять же, становится понятна только после рассказа об эндоморфизмах на алгебре Грассмана. Comment by measure0 — @. measure0, вы путаете понимание и максимально общее представление — это не одно и то же.

Древние греки тоже не понимали что такое объем, да и не только это, однако это не мешало им придумывать очень много всякого, с этим объемом связанного. В НМУ далеко не каждый раз на первом курсе есть лемма Цорна — Миша вроде был единственным на моей памяти, кто это делал. Но на НМУ ориентироваться я бы и не стал — оттуда уходит 90% пришедших на первое занятие, а те кто остаются как правило еще до первого занятия уже отлично знают и что такое определитель и что такое алгебра Грассмана.

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

Не с математической, а чисто с методической точки зрения. Comment by — @. Роман, Интуиция плохо работает в случае пространств с размерностью больше трех, поэтому на мой взгляд это только запутывает. Я слабо представляю как объяснить, что такое объем четырехмерного параллелепипеда. Это из серии «оно как груша, только не груша».

Графов

Придется для этого давать явную формулу и получится, что это объем определяется через детерминант, а не наоборот. Ну и вообще я против того, чтобы использовать понятия, которые ранее не были определены. Это видимо вопрос идеологического характера, т.к. Когда я начинал учить математику, то страдал от того, что многие авторы кидались словами «каноническое отображение» и «естественный изоморфизм» не давая строгого определения. Comment by — @. Хеллер, а я не так много на самом деле литературы нашёл по алгебре, вот по анализу много,но вся как по одному шаблону написано,решил использовать Зорича и привлекать Львовсвого иногда,а вот с алгеброй всё для меня в плане литературы оказалось сложнее.

Винберг был, но в электронном виде, мне не удобно читать на экране,предпочитаю бумагу,начал литературу искать,нашёл только Кострикина,но понравился меньше Винберга, Курош не понравился совсем,всеразличные книги типа Ильин, Позняк, Ильин, Ким и тд вообще не впечатлили, печатных Ленга и Ван дер Ваардена я тоже не нашёл,сначала взял книжку Бохера,а потом вот Онищика и Зуланке выискал,сейчас учу по ней. Онищик,по-моему,ученик Винберга. В общем,я сошёлся на этой книжке, думал вот Винберга взять,когда новое издание вышло, но некоторые вещи не очень понравились как вводятся, в общем пока совмещаю её и Винберга. Очень хотелось бы ещё за геометрию сесть,но ничего хорошего, кроме как Прасолов, Тихомиров не нашёл, а учить то,что у нас в ВУЗах обычно расказывают по геометрии не очень хочется(типа тех же Ильина и Позняка),да и смысла не вижу особого. Тоже интересна литература, в первую очередь, например где бы хорошо было написано о группах отражений и калейдоскопах.

Пока ищу,хотел взять Берже,но говорят,что не очень,да и печатной я её не нашёл. Comment by печатель — @. печатель, ну я советую ориентироваться на список который я выложил, во всяком случае то что перечислено в «Базовый уровень» — это совершенно точно must have для любого начинающего.

Ну и вообще тут довольно адекватные книги насколько я могу судить (во многих вещах я совершенно не компетентен, поэтому не могу судить). По алгебре я бы еще добавил к списку Dummite, Foote «Abstract Algebra», хотя в принципе того что тут перечислено уже более чем достаточно. Куроша, Ильина, Позняка, Ван дер Вардена вообще читать нет смысла (а Ильина с Позняком так и подавно противопоказано). Comment by measure0 — @. печатель, читать с экрана придется в любом случае, так как купить все книги, которые необходимы — просто невозможно. Опять же чаще всего сложно учиться по одной книге, правильнее по одной теме проглядывать сразу десяток источников. Не читать последовательно, а именно разбираться с конкретными темами, многое пропуская (скажем, рассказ об интегралах во втором томе Зорича лучше пропустить — куда правильнее сразу браться за интеграл Лебега).

Вообще читать книги лучше вначале быстро, поверхностно и по диагонали, а потом разбираться в том, в чем уже видна необходимость. Очень во многих книгах доказательства приводятся не самые удачные — часто можно найти что-то более простое и короткое, часто для общего развития в книгах предлагаются вообще не особо нужные, но сложные вещи — я бы на это даже не отвлекался. Только если вдруг пригодится. Comment by — @. печатель, про группы отражений и многогранники подробно написано в 7ом томе 3ей серии Математического Просвещения. Алгебру я по Dummit, Foote — Abstract Algebra учу. 945 страниц содержат большое количество примеров и упражнений, есть уникальная инфа, которой я не встречал в других классических учебниках (например, в главе о конечных группах описана программа Гёльдера их классификации).

Книга читается легко и приятно и имеет меньше недостатков, чем остальные. Ну и Atiyah, McDonald однозначно надо прочитать (читай: прорешать). Мне её Саша Ефимов посоветовал, когда я тупил на семинаре Локтева, сказал что в мои годы сам ей прорешал, и очень помогло.

Геометрию по Берже и Прасолову (вроде все элементарные геометрические идеи в этих 2-х книгах изложены очень хорошо). В современной математике из программы лиценциата НМУ по геометрии используются в основном проективные пространства и неевклидова геометрия. Их надо подробно изучить, остальное — как получится. Comment by Сергей — @. @ Андрей: Если уж для вас принципиально учиться только по одной книге, то я бы посоветовал лучше брать Винберга. Кострикин, да, покрывает большую часть материала, но изложение очень часто у него просто ужасное.

Не везде, конечно, но бывает. Винберг в этом плане на порядок проще, хотя некоторые темы наоборот лучше изложены у Кострикина (например «традиционное» определение ЖНФ без модулей и афинная геометрия до квадрик).

Но это скорее исключения. Многое в Кострикине понять крайне сложно, хотя сами понятия очень просты. Comment by — @. @ Хеллер: Спасибо за ответ в любом случае.

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

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

Лучший

Comment by measure0 — @. @ печатель: Я думаю, что это простое следствие неграмотности большинства и лоббирование министерства.

Учебники Ильина и Позняка выдают в библиотеке каждому первокурснику не спрашивая ничьего мнения на этот счет. Кстати, несколько лет назад я к своему позору сам всюду рекомендовал Ильина и Позняка, но делал это исключительно в силу собственной безмозглости, а не со зла (в то же время я сравнивал книги с прослушанными лекциями и учебниками, которые показывали мне другие студенты, и Ильин с Позняком действительно оказывались лучше хотя бы по количеству материала). Аргументы о том, что Зорич слишком сложен вообще какие-то идиотские.

Я еще не видел книги, которая была бы написана проще и понятнее Зорича, при том, что уровень там очень хороший в книге для базового курса. Там тебе и многообразия, и гомологии, и дифференциаяльные формы — только основы, конечно, но полезно и можно сложить адекватное представление о предмете. Потому что такими простыми словами как у него это вроде нигде больше и не излагается, насколько я знаю. Вообще про Зорича я слышал, что он какое-то время назад попал в опалу на МехМате из-за своих симпатий к НМУ, и поэтому его учебник там табуирован. Но не могу судить насколько это правда.

Что касается самой программы, то тут сказывается видимо просто инертность наших ВУЗов и не правильное представление о том, как должен проходить учебный процесс. Например, у нас программистов на первом курсе пичкают зачем-то совершенно ненужной им механикой на сравнительно глубоком уровне — там тебе и сила Кориолиса, и равноускоренное движение, и какие-то другие вещи, которые общеобразовательными никак не назовешь, но на них приходится тратить время.

Для сравнения вот как строится общеобразовательный курс механики в MIT: — все предельно просто, буквально «на пальцах», но там и про принцип Гейзенберга, и про двойные звезды, и про измерение массы в невесомости. У нас же вместо этого зубрежка формул из очень узкой области без какой-либо цели, кроме следования парадигме, что студент должен зубрить и решать сотни однотипных «задач». Так же как школьная математика — куча формул при нулевом понимании, причем рассматриваются лишь отдельно выхваченные разделы, причем подавляющее большинство людей думает, что так и надо.

Ну и с учетом этого учебники Ильина и Позняка идеально вписываются в систему. Comment by 23Skidoo — @. @ Arkkienkeli: Рекомендация выше Страуструпа явно преждевременная. Начинать следует с какой-нибудь простой книги вроде «С за 10 дней» или что-нибудь в этом духе.

Сходу въехать в Страуструпа крайне сложно, да и это больше не книга по программированию на C, а такое подробное описание конструкций языка без особой практики. Посоветовать что-то конкретное не могу, так как уже не помню по чему учился сам (было это семь-восемь лет назад). Ну и про разницу в C# и C выше верно указали.

Сранивать их нельзя ни в коем случае, это абсолютно разные технологии. C# проще как в плане освоения, так и в плане зарабатывания денег. Еще преимущество: в основном сейчас все события происходят как раз в C# и около того, так занимаясь C# вы будете на переднем крае прогресса. C тоже развивается, но довольно медленно, вернее тут будет сказать «догоняет». Из преимуществ C можно выделить то что он сравнительно низкоуровневый и есть такое мнение, что освоив его и получив опыт вы будете куда более крутым программистом, чем программист не видевший ничего кроме C#/Java.

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

Comment by Сергей — @. Я лично начал свою разумную жизнь как раз в тот момент, когда у меня в руках оказалась книга Керниган, Ритчи «Язык программирования С». Я тогда был в 9ом классе и незадолго перед этим впервые установил дистрибутив линукс Mandrake 9.2. Общение с линухом и чтение этой классической книги сделало из мальчика мужчину.

В 10ом классе я уже портироваал драйвер сжатых файловых систем cloopfs на новую версию ядра. Так что начинать прогать надо с Си и именно по Кернигану-Ритчи. Comment by 23Skidoo — @.

@ Хеллер: Видишь ли Рома, в мире пока ещё дохера кода на Си, хотя бы поэтому его знать надо. «Изучать надо современные вещи» — выучить синтаксис можно за уикенд, изучают-то вообще алгоритмы и парадигмы, а не языки.

Имхо, если хочешь освоить процедурное программирование — выражай мысли на процедурном языке, хочешь научиться функционально мыслить — тренируйся на функциональных языках, то же для ООП. А процедурное программирование надо осваивать первым (и лучше на Си), или ты не согласен? Comment by Сергей — @. Позволите вернуться к математике? Хеллер: Мне,откровенно говоря,кажется, что дело не в министерстве,а в самих преподавателях ВУЗов. Они сами так учились,теперь сами так преподают, не считая нужным корректировать курс на более современный и посмотреть другие,более адекватные, книжки.

При этом студенты сдают,получают свои отлы, но реально не знают математики. Есть проблема и в самих студентах, они сдают то, что им дают и не желают посмотреть другую литературу, ознакомиться дальше. Что касается физики,то, как я понимаю, учился ты в МИФИ, а там это ВУЗовский компонент, её учат все. Кстати,программа МИФИ по математике просто ужасна, на мой взгляд. Comment by печатель — @. @ Сергей: То что в мире до хера кода на Си еще не значит, что его надо изучать, если только у вас нет желания копаться в окаменевшем дерьме мамонтов. Так же как сейчас нет смысла изучать Perl5 (в независимости от того, какие любовные чувства я к этому языку имею), хотя кода на нем тоже не мало.

Я согласен, что изучать надо не языки программирования, а парадигмы, но это не относится к процедурной парадигме. Чего там изучать? If, while и вызов функции? Изучать там нечего, само придет в фоновом режиме при изучении ООП. Поэтому специально заниматься языком Си для этого бессмысленно.

В крайнем случае если уж хочется чистой процедурщины — можно посмотреть в сторону QBASIC в течении нескольких дней. Читать для этого Кернигана-Ричи (а это 300 страниц — несколько больше чем неделя чтения, если читать вдумчиво) навязывая себе устаревшие шаблоны — просто глупо. Опять же программирование — это не только синтаксис и парадигма.

Это еще как минимум использование библиотек, набор стандартных трюков, экспириенс и тонкости, специфичные для языка. Например, я ненавижу Сишников, которые перелезая на C испытывают животную фобию тайпдевоф и не понимают почему нельзя использовать void. и приведения типов в Си-стиле. Я уж не говорю об адекватном использовании. Так что мой совет — посмотреть что нужнее в ближайшей перспективе (для работы/ВУЗа), в какой области есть желание работать (если писать дрова для никсов, то лучше C, если лол-приложения для Win7 — то C#), и изучать в соответствии с этим.

Ну а если просто для общего развития — лучше C, если уже есть какой-то опыт в других языках. Если нет — C#. Comment by yas — @. а это 300 страниц – несколько больше чем неделя чтения, если читать вдумчиво Для сравнения — чтобы начать нормально разбираться в C, нужно прочитать Страуструпа (1000 страниц), три книги Мейерса (каждая по 250 страниц), четыре книги Саттера (каждая по 250 страниц), Vandevoorde (550 страниц), желательно ещё Александреску (350 страниц) и Абрахамса/Гуртового (400 страниц), плюс ознакомиться с Boost (есть книга на 400 страниц, но там не всё). И этого всё равно не будет достаточно, желательно ещё ознакомиться со стандартом. А ещё грядёт C0x с ужасами вроде rvalue references.

Для Си достаточно Кернигана и Ричи плюс опционально ван дер Линдена. Уметь читать стандарт не так важно. Вообще же, если бы я сейчас начинал учиться программировать, я бы начал с Питона. Comment by 23Skidoo — @. 23Skidoo, привести десяток известных книг и сказать, что без них нельзя нормально программировать можно в отношении любого языка. Совершенно не аргумент. Я вот считаю, что именно потому что «для Си достаточно одной книги» программисты на Си зачастую пишут совершенно невменяемый код.

Он конечно работает, и может быть даже и выигрывает на 5% по быстродействию, но я в гробу видал отладку этого монстра и сопровождение — спасибо, нагляделся. К тому же рекомендация изучать Си совершенно безответственна в финансовом плане. Вы предложите еще LISP изучать (который в отличие от Си великолепен, но тоже не заработаешь). А Python есть смысл изучать, да. Единственное что, на нем заработать труднее, ну и функциональное программирование пока еще не то чтобы шагает по планете, в первую очередь я бы озаботился все же ООП. Comment by — @.

А я нагляделся на персонажей, которые приходят на собеседование и не могут написать функцию поиска максимального значения в бинарном дереве. Речь шла об обучении.основам программирования. Это в первую очередь алгоритмы и структуры данных, изучать их на Си проще просто из-за того, что не надо отвлекаться на нерелевантные языковые конструкции. C/C#/Java можно по желанию освоить потом, и сделать это, уже умея программировать, будет гораздо легче.

Ещё желательно ознакомиться с ассемблером, чтобы понимать как работает машина. В западных ВУЗах примерно так и учат — вводный курс программирования на простом языке вроде Питона, курс системного программирования, курс компьютерной архитектуры, курс функционального программирования. Лисп/Пролог/Haskell, но факультативно, из-за profound enlightenment experience. привести десяток известных книг и сказать, что без них нельзя нормально программировать можно в отношении любого языка. Это, я ещё подсократил. C объективно очень сложен.

Comment by 23Skidoo — @. 23Skidoo, вот и давайте тогда определимся: мы говорим об основах программирования, или о том, что надо быть крутым экспертом. А то как Си, так можно быстро изучить основы, а как C, так десять книг обязательно читать. Изучать базовые вещи нет разницы на C или на Си.

А вот раннее представление об объектах крайне важно, ровно как столь же вредно мышление, зацикленное на алгоритмах и процедурах, и не способное организовывать код в объекты. Неумение нейти максимум в бинарном дереве проистекает от полного незнания алгоритов, а не от того, что человек пишет на C. «Простой язык вроде Питона» — это пять.

При видимой простоте, он таки наполовину функциональный, и все эти замыкания с лямбдами ой как не просты, смею вас заверить. Там одной только теории не одна монография посвящена. Ну и не надо сказок про сложности C. Я вообще-то программирую на С, при этом с другими языками тоже знаком (главным образом LISP и Perl).

Си банально не обладает теми возможностями по организации больших проектов, которые необходимы в крупном продукте. Этого достаточно, чтобы им не пользоваться, если кода больше, чем 50000 строк. Как учатся в западных ВУЗах для меня совершенно не показатель. В западных ВУЗах еще Women and Gender Studies учат тоже, и что с того?

Лучший Учебник По Теории Графов

Хороший Учебник По Теории Графов

Comment by — @. А то как Си, так можно быстро изучить основы а как C, так десять книг обязательно читать. Я сравнил объём литературы, который необходимо освоить для достижения сравнимого уровня экспертизы в C и С.

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

Скорее от того, что кроме книжки «C за 21 день» человек ни с чем не ознакомился. А вот раннее представление об объектах крайне важно Ценность «объектов» и «паттернов» преувеличена. Вначале они ничего не дают, кроме лишнего концептуального багажа.

Важно представлять себе, как железо работает, знать основные алгоритмы и структуры данных. В крупных проектах объекты могут быть как полезны, так и — к сожалению, голову на плечах «раннее представление об объектах» не заменит. Си банально не обладает теми возможностями по организации больших проектов, которые необходимы в крупном продукте. Эти вещи полезны, но не необходимы — чему свидетельством большое число крупных проектов на Си или сильно ограниченном подмножестве C.

Кроме того, в C существенно проще наломать дров, и из-за этого во многих крупных проектах многие фичи (обычно исключения и RTTI). Кроме того, в C тоже нет некоторых полезных вещей. Например, нормальной системы модулей. При видимой простоте, он таки наполовину функциональный Он никаким боком не функциональный. Анонимные функции и функции высшего порядка есть и в C0x. Питон изначально создавался как язык для обучения программированию и в этом качестве используется, например,.

Кстати, объекты в этом курсе проходят. Как учатся в западных ВУЗах для меня совершенно не показатель. Это я даже не буду комментировать. Comment by 23Skidoo — @. В крупных проектах объекты могут быть как полезны, так и вредны (Lie #2) Code should be designed around a model of the world There is no value in code being some kind of model or map of an imaginary world.

I don’t know why this one is so compelling for some programmers, but it is extremely popular. If there’s a rocket in the game, rest assured that there is a «Rocket» class (Assuming the code is C) which contains data for exactly one rocket and does rockety stuff. With no regard at all for what data tranformation is really being done, or for the layout of the data.

Or for that matter, without the basic understanding that where there’s one thing, there’s probably more than one. Though there are a lot of performance penalties for this kind of design, the most significant one is that it doesn’t scale. One hundred rockets costs one hundred times as much as one rocket.

And it’s extremely likely it costs even more than that! Even to a non-programmer, that shouldn’t make any sense. Economy of scale. If you have more of something, it should get cheaper, not more expensive.

And the way to do that is to design the data properly and group things by similar transformations. Comment by 23Skidoo — @.

@ 23Skidoo: Вы написали очень много, но не сказали ничего нового. «Критики» C в подобном стиле я слышал очень много: она всегда сводится к тому, что «C сложный, и если прочитать одну только книгу, то об алгоритмах не будешь знать». Мне что-то подсказывает, что если прочитать только одну книгу Кернигана-Ричи, то с деревьями работать тоже не научишься.

Все остальное — это ретроградство, либо передергивание в виде указания на плохие решения языка с умным видом. Но дело в том, что эти плохие решения использовать никто и не заставляет вообще-то. Ну либо стремление соптимизировать все по максимуму, что в 90% проектов не нужно (и с такими оптимизаторами кода я тоже сталкивался — зрелище тоже не из приятных).

Короче не интересно.

Базовые понятия теории графов. История возникновения теории графов Родоначальником теории графов считается. В 1736 году в одном из своих писем он формулирует и предлагает, ставшей впоследствии одной из классических задач теории графов. Терминология теории графов Терминология теории графов поныне не определена строго. В частности в монографии Гудман, Хидетниеми, 1981 сказано: “В программистском мире нет единого мнения о том, какой из двух терминов ' граф ' или ' сеть '. Мы выбрали термин ' сеть ', так как он, по-видимому, чаще встречается в прикладных областях”.

Аналогичная ситуация для “вершина / точка”. Теория графов, Graphentheorie - в узком смысле - раздел дискретной математики, одна из ветвей дискретной топологии, в широком смысле - теория сетей, наука о топологических формах, сетевых моделях представления любого процесса или системы. Основным объектом исследования этой теории являются графы. Графом называют геометрическую схему, представляющую собой систему линий, связывающих какие то заданные точки. Точки называемые вершинами, а связывающие их линии - ребрами (или дугами). Теория графов обосновывает способы построения графов, выражающих зависимости или связи в форме геометрических схем между различными единицами той или иной совокупности.

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

Вся сеть Интернет - тоже граф. Теория графов не обладает устоявшейся терминологией.

Учебник По Теории Графов

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

Рассматриваются как вершины, а соединяющие их дороги, инженерные сети, линии электропередачи и т. Применение различных вычислений, производимых на таком графе, позволяет, например, найти кратчайший объездной путь или ближайший продуктовый магазин, спланировать оптимальный маршрут. Теория графов содержит большое количество нерешённых проблем и пока не доказанных гипотез. Неориентированный граф, G-граф - это упорядоченная пара G:= (V, E), для которой выполнены следующие условия: V - это непустое множество вершин, или узлов, E - это множество пар (в случае неориентированного графа - неупорядоченных) вершин, называемых рёбрами. V (а значит и, E, иначе оно было бы мультимножеством) обычно считаются конечными множествами.

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

Размер графа - это число его рёбер E. Взвешенный граф - это граф, в котором каждому ребру поставлено в соответствие некоторое число, называемое весом ребра. Существуют также k-раскрашиваемые и k-хроматические графы. Простой граф является одномерным симплициальным комплексом. Более абстрактно, граф можно задать как тройку (V, E, Ф), где V и E — некоторые множества (вершин и рёбер, соответственно), а Ф — функция инцидентности (или инцидентор), сопоставляющая каждому ребру e. Объектный граф - совокупность узлов и ребер, соединяющих эти узлы. Объектные графы обеспечивают простой способ учета взаимных связей в системе, множестве объектов, и не обязательно, чтобы эти связи в точности проецировались в классические связки объектно-ориентированного программирования (такие как отношения старшинства и подчиненности), хотя они моделируют эту парадигму достаточно хорошо.

Каждому объекту в объектном графе назначается уникальное числовое значение. Следует иметь в виду, что эти числовые значения, приписываемые членам в объектном графе, произвольны и не имеют никакого смысла вне графа. После назначения всем объектам числового значения объектный граф может начать запись множества зависимостей каждого объекта. Список рёбер - это тип представления графа, подразумевающий, что каждое ребро представляется двумя числами - номерами вершин этого ребра.

Лучший Учебник По Теории Графов

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

Не следует путать изображение графа с собственно графом (абстрактной структурой), поскольку одному графу можно сопоставить не одно графическое представление. Изображение призвано лишь показать, какие пары вершин соединены рёбрами, а какие — нет. Часто на практике бывает трудно ответить на вопрос, являются ли два изображения моделями одного и того же графа или нет.

В зависимости от задачи, одни изображения могут давать более наглядную картину, чем другие. Языки описания и программы построения графов Для описания графов в целях, пригодных для машинной обработки и одновременно удобном для человеческого восприятия используется несколько стандартизированных языков, среди которых:. DOT (язык графов).

GraphML. Trivial Graph Format. GML. GXL. XGMML.

DGML Отметим специализированные программы для построения графов. К наиболее удачным относятся коммерческие:. ILOG. GoView. Lassalle AddFlow.

LEDA (есть бесплатная редакция). Из бесплатных можно отметить Boost Graph Library - Библиотека для работы с графами на языке C Для визуализации графов можно использовать:.

Graphviz (по мнению экспертов, она хорошо работает для орграфов). LION Graph Visualizer. Графоанализатор – это русскоязычная программа, с весьма простым пользовательским интерфейсом.

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

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

Diestel R. Graph Theory, Electronic Edition. NY: Springer-Verlag, 2005. Басакер Р., Саати Т. Конечные графы и сети.

М.: Наука, 1974. В., Воробьев Е. М., Шаталов В. Теория графов. Теория графов и ее приложения. М.: ИЛ, 1962. Емеличев В.

А., Мельников О. И., Сарванов В. И., Тышкевич Р.

Лекции по теории графов. М.: Наука, 1990.

(Изд.2, испр. М.: УРСС, 2009. 392 с.).

Зыков А. Основы теории графов. — М.: “Вузовская книга”, 2004. — ISBN 5-9502-0057-8(М.: Наука, 1987. 383c.). Кирсанов М. М.: Физматлит, 2007.

Кристофидес Н.Теория графов. Алгоритмический подход. М.: Мир, 1978. Алгоритмы для работы с графами // Алгоритмы: построение и анализ = Introduction to Algorithms. — М.: Вильямс, 2006.

— ISBN 0-07-013151-1. Оре О. М.: Наука, 1968. Алгебраические основы теории дискретных систем. М.: Физико-математическая литература, 1997. ISBN 5-02-015033-9.

Свами М., Тхулалираман К. Графы, сети и алгоритмы. М: Мир, 1984. Теория графов. М.: Мир, 1988. Введение в теорию графов.

М.: Мир, 1977. Теория графов. — М.: Мир, 1973. 3, М.: КомКнига, 2006.

— 296 с.). Харари Ф., Палмер Э. Перечисление графов. М.: Мир, 1977.

М.: Мир, 1973. Химические приложения топологии и теории графов. М.: Мир, 1987. Знаете ли Вы, что 'тёмная материя' - такая же фикция, как черная кошка в темной комнате. Это не физическая реальность, но фокус, подмена.

Реально идет речь о том, что релятивистские формулы не соответствуют астрономическим наблюдениям, давая на порядок и более меньшую массу и меньшую энергию. Отсюда сделан фокуснический вывод, что есть 'темная материя' и 'темная энергия', но не вывод, что релятивистские формулы не соответствуют реалиям. Подробнее читайте. НОВОСТИ ФОРУМА Рыцари теории эфира - 09:28: -КаримХайдаров. 18:20: -КаримХайдаров. 07:31: -КаримХайдаров. 18:46: -КаримХайдаров.

11:10: -КаримХайдаров. 01:53: -КаримХайдаров. 17:14: -КаримХайдаров.

08:05: -КаримХайдаров. 16:59: -КаримХайдаров. 23:48: -КаримХайдаров. 23:44: -КаримХайдаров. 08:21: -КаримХайдаров.

Coments are closed
Scroll to top