Математика и секс
Август 2nd, 2010

О книгах Дональда Кнута

Хватит о политике, пока меня не посадили. Лучше о книгах.

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

О контенте. Первый том вообще не нужен. Значительная его часть посвящена ассемблеру MIX. Он конечно язык сравнительно простой, но объяснять алгоритмы на примере ассемблерного, а не псевдокода, как-то не правильно на мой взгляд (тем более что современные настоящие ассемблеры даже проще, чем кнутовский). Я лично прочитал про сам MIX, но дальше все, где этот язык фигурировал, пропускал, потому что дикая дурь. Может быть конечно во времена, когда Кнут писал книгу, это и было оправданно, но сегодня это выглядит как крайне неудачный ход.

Еще в первом томе есть немного математики и немного про деревья. Математическая составляющая тоже не особо радует — на 90% это «синтаксическая математика», где все сводится к механическим операциям. Действительно интересных задач почти нет. Да и в общем-то математика там очень детская и какая-то несерьезная. Книга излагает лишь несколько простейших результатов о сочетаниях и сравнениях по модулю на школьном уровне. Из-за этого поверхностного знакомства с математикой многие доказательства оказываются на порядок сложнее, чем они могли бы быть. Даже базовые вещи вроде O-нотации описываются в главах со звездочкой и практически не используются. (Как я понимаю, книга писалась для первого курса и продвинутых школьников).

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

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

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

Вторая половина второго тома посвящена работе с полиномами. Ну, наверное кому-то оно надо, но не мне.

А третий том я уже читать не стал, хотя вроде как более-менее прикладные вещи начинаются только там. Хотя и тут тоже в современном мире следовало бы больше времени уделить всяким стохастическим методам, а не излагать десять видов деревьев. Это конечно уже не к Кнуту претензия, а просто еще один аргумент против того, чтобы читать книгу.

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

В общем, не советую.

Зато очень рекомендую книгу Кнута, Грэхэма и Поташника «Конкретная математика». Книга для детей, подойдет даже для гуманитариев (правда иногда надо брать простые интегралы), но написана чертовски хорошо. Местами нудновата, когда разжевывают совсем примитивные вещи, но вообще книга совершенно прекрасна в качестве легкой зарядки для ума гуманитария, либо для приятного отдыха технаря. И кстати именно такие задачи как там любят спрашивать на собеседованиях во всякие Майкрософты, Яндексы и прочие Гуглы — так что если кто туда хочет, то книга как раз для него.

75 комментариев »

  1. > У меня была детская мечта понять как компьютер генерит случайные числа и доказать аналитически, что этот алгоритм обладает какими-нибудь хорошими свойствами и вообще выдает равномерное распределение.
    http://en.wikipedia.org/wiki/Mersenne_Twister
    http://en.wikipedia.org/wiki/Multiply-with-carry
    http://en.wikipedia.org/wiki/Well_Equidistributed_Long-period_Linear

    Comment by __ — 03.08.2010 @ 01:39
  2. Угу. Я вот тоже читал — вроде дрянь. Но может не дрянь, но уже не актуально. И статьи по тем же алгоритмам лучше найти и прочитать от авторов. Но… Вроде классика… Дрянью называть в слух язык не поворачивается))) Дрянь))

    Comment by Dmitry — 03.08.2010 @ 02:28
  3. Роман, ты неправ.

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

    В Art of Computer Programming не синтаксическая математика, а самая обычная комбинаторика, численный анализ и асимптотический анализ. Накрытия Галуа это, конечно, круто, но в алгоритмах используются более приземленные вещи, поэтому математическая часть там более чем оправдана.

    Лучшего описания простых структур данных, кстати, нигде не видел. Только прочитав Кнута мне стала очевидны польза, скажем, double linked list.

    >>> Тоже мало приятного, так как идея, которая приводит к алгоритму, не раскрывается, ну а стало быть и понимание принципа алгоритма не может считаться полным.

    Это не так. Там всегда дается и идея и мотивировка для алгоритма.

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

    Comment by measure_0 — 03.08.2010 @ 08:58
  4. >>> К сожалению, тут мои надежды рухнули — за исключением пары нехитрых результатов о том как ГСЧ не надо делать, ничего аналитически не доказывается, а хорошие генераторы получаются методом научного тыка. Не совсем то что хотелось, но по крайней мере я теперь это знаю.

    В смысле? Там все достаточно строго доказывается с использованием лемм из элементарной теории чисел.

    Comment by measure_0 — 03.08.2010 @ 09:02
  5. measure_0, про ГСЧ там на леммах доказываются только основы. Ну то есть как делать более длинный генератор без явных косяков в последовательности чисел. Но в результате качество генератора предлагается проверять статистическими тестами. Причем «качество» — это не то что он там идеально подходит для криптографии, а минимально то что он не генерит совсем уж плохие последовательности. С инженерной точки зрения, конечно, правильно, но не интересно.

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

    Comment by Хеллер — 03.08.2010 @ 09:19
  6. Подтверждаю сказанное measure_0: все нетривиальные алгоритмы приведены с эвристическими предпосылками и математика у Кнута ровно та, которая нужна для анализа алгоритмов.

    «объяснять алгоритмы на примере ассемблерного, а не псевдокода, как-то не правильно» — у всех основных алгоритмов в книге есть представление в псевдокоде, читай внимательнее. Выучить язык ассемблера MIX и читать алгоритмы на нём полезно только для практикующего программиста: Кнут учит думать как низкоуровневый кодер, экономить байты и процессорные циклы, замечать в коде места для оптимизации.

    Роман, переставай читать труды великих по диагонали: от этого нет пользы, ты думаешь, что экономишь время проглатывая материал не «пережёвывая», хотя на самом деле ты тратишь его на бесплодное листание. Чемпионы ACM (неглупые ребята) читают и переосмысливают этот труд Кнута годами.

    Меняйся к лучшему и радуй благодарных читателей интересными математическими заметками. Хочу узнать: ты посещаешь лекции или семинары в НМУ и сдаёшь ли сессии там?

    Comment by Сергей — 03.08.2010 @ 09:55
  7. Сергей, в данный момент каникулы, но вообще посещаю. Сессии не сдаю, так как нет времени (то есть не делал попыток, но листки выполняю где-то процентов на 50% — опять же потому что не хватает рук на большее).

    У Кнута нет никакого псевдокода и в помине. Описание алгоритма в виде

    Шаг1. Сделать то.
    Шаг2. Сделать это.
    Шаг3. Если вон то, то опять на шаг 1.

    Это не совсем псевдокод. Псевдокод (что-нибудь паскале- или си-подобное), в отличие от формального алгоритма расписанного по шагам, гораздо лучше отражает суть того, что происходит.

    >Чемпионы ACM (неглупые ребята) читают и переосмысливают этот труд Кнута годами.

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

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

    И еще про

    >этот труд Кнута годами.

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

    Comment by Хеллер — 03.08.2010 @ 10:19
  8. >>> Это не совсем псевдокод.

    Конечно. Кнут описывает низкоуровневые алгоритмы, поэтому вполне естественно, что вместо операторов ветвления используются всякие джампы.

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

    Да по сравнению с твоим любимым Dummit & Foote (вот уж где действительно отсылки к упражнениям через один) Кнут просто ангел :)

    Comment by measure_0 — 03.08.2010 @ 10:33
  9. measure_0, ну не замечал, чтобы Dummit & Foote усердствовали с отсылкой к упражнениям. Встречаются, конечно, но у Кнута их значительно больше (во всяком случае в той части, где про генераторы — вот это было действительно адовое чтиво).

    Comment by Хеллер — 03.08.2010 @ 10:44
  10. Роман, «Псевдокод … гораздо лучше отражает суть того, что происходит», «В Книге нет ничего такого, на что стоило бы тратить года», «изложение неоправданно сложное, хотя вещи сами описываются крайне простые» — я понимаю твою точку зрения, но считаю скрупулёзность и разноаспектность не недостатком, а особенностью («изюминкой» если угодно) изложения. Если вдумчиво читать по порядку (и запоминать основные результаты), то идёт хорошо и возвращаться приходится нечасто.

    А как тебе «Фундаментальные алгоритмы на C++» Седжвика? Мне лично очень нравится.

    Отвлекусь от темы: торгуешь ли ты (или твои знакомые) на рынке Forex (если да, то насколько успешно)?

    Comment by Сергей — 03.08.2010 @ 11:00
  11. Сергей, на Forex не торгую, но торговал раньше на ММВБ. Сделаю об этом заметку.

    «Фундаментальные алгоритмы на C++» не читал. Беглый просмотр не произвел впечатления. Больше походит просто на коллекцию исходников.

    Comment by Хеллер — 03.08.2010 @ 12:16
  12. «на Forex не торгую» — ну слава богу (мое мнение).

    Comment by Dmitry — 03.08.2010 @ 12:34
  13. «на Forex не торгую, но торговал раньше на ММВБ. Сделаю об этом заметку.» -было бы очень интересно.а можешь посоветовать что нибудь почитать по этой теме?и почему в частности ты выбрал ммвб а не forex?также интересно про выбор брокера на ммвб,ну и чем он был обусловлен

    Comment by thinkprimitively — 03.08.2010 @ 13:02
  14. Роман, «Беглый просмотр не произвел впечатления. Больше походит просто на коллекцию исходников.» — это действительно архив лаконичного кода + продуманный набор упражнений + эвристика, предпосылки и анализ всех алгоритмов. Наверное, тебя это не впечатлило потому, что математики в этом мало. Сам я её читаю с удовольствием как дополнение к Кнуту.

    Dmitry, «ну слава богу» — предрассудки из 90-х проявляются? Действительно, до 2003 года торговать на Forex в этой стране было крайне рискованно, т.к. в этой стране Forex официально не существовало. Сегодня официально существует, правда гарантий минимум. Зато чувствуется жёсткая конкуренция между дилерами, а это — лучшая гарантия честности. Я знаю людей, которые зарабатывают 130% годовых автоматизированно (читай: работая на своей торговой системе 3 часа в неделю).

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

    Извиняюсь за оффтоп.

    Comment by Сергей — 03.08.2010 @ 13:42
  15. А как вам книга Кормен Лайзерсон Ривест Штайн — Алгоритмы: построение и анализ ? Для начинающих вроде самое то

    Comment by Магомед — 03.08.2010 @ 14:17
  16. Кормен & Co очень хорошая книга. Она и не только для начинающих хороша.

    Comment by measure_0 — 03.08.2010 @ 14:20
  17. Хотелось бы узнать вы функциональными языками не увлекаетесь ? Lisp/Scheme, Haskell ?

    Comment by Магомед — 03.08.2010 @ 14:24
  18. Магомед, я очень люблю Lisp, хотя плохо обучен — как раз изучал его когда пошел в НМУ. Ну а когда начал серьезнее заниматься математикой, на Lisp времени уже перестало хватать, и забросил. Хотя планирую к нему вернуться, так как язык совершенно волшебный. Правда, есть не приятное ощущение, что за год уже все забыл и сейчас придется чуть ли не переучиваться.

    Comment by Хеллер — 03.08.2010 @ 15:14
  19. «Dmitry, «ну слава богу» – предрассудки из 90-х проявляются?» — логика проявляется. Если очень очень банально: у тебя есть 10 рублей, а у меня 1000. Мы начинаем случайным образом (орел-решка) разыгрывать по рублю. Теперь посчитай, какова вероятность того, что я останусь банкротам и какова, что ты?

    Потому, что
    http://fintraining.livejournal.com/133004.html
    например, хорошая и популярная статья.

    А реально, кто с форекса деньги имеет — это те, кто осуществляют форекс услуги. И имеют они денег хорошо. Тут кроме логики можно включить глаза и посмотреть вокруг, как обклеивают всю москву, висит реклама во всем интернете, постоянно форекс впаривают и говорят, что на этом зарабатывают. Это если просто вокруг смотреть. Но если Боггла прочитать, то там это просто показывается на цифрах и статистике.
    И это если не брать даже вот:
    http://oleg-anisimov.livejournal.com/224058.html
    а просто брать форекс сам по себе, то это, как в анекдоте:
    — Ты не знаешь, где моя черепашка?
    — Так она с ребятами во дворе… Орехи колет…

    Когда вас зовут зарабатывать деньги на форексе, нельзя сказать, что вам говорят неправду.Вам просто говорят не всю правду.
    Вы, кстати, не из зазывал, случаем?

    Но это, конечно, если речь идет о «заработать денег». Если речь о том, что у метро убрали однорукого бандита, а руки чешутся, то, да, форекс — отличная вещь.

    Comment by Dmitry — 03.08.2010 @ 16:33
  20. Чем волшебен Lisp? Хотел изучить — не знаю, стоит ли. Можешь указать алгоритмы, которые на процедурных ЯП записываются много более громоздко, чем на Lisp (кроме обработки списков)?

    Comment by Сергей — 03.08.2010 @ 17:00
  21. Сергей, насчет именно «короче» сложно сказать, да я и не уверен, что это верный критерий. Хотя понятие списка очень широкое — это и лямбда-выражения (сама функция на Лиспе — список), и рекурсии, и обработка символьных последовательностей, и цифровые фильтры. Но опять же совершенно не в краткости дело. На Perl вот можно очень кратко писать, но от этого программа не станет понятной. Я бы сказал, что волшебна сама идеология функционального программирования.

    Comment by Хеллер — 03.08.2010 @ 17:19
  22. Dmitry, рад, что вами движут не предрассудки, а логика.

    Мой дилер (крупнейший в стране) в 2007 году опубликовал статистику по своей клиентуре: успешны 16%, остальные сливают депозит. Да, надо быть лучше 84% трейдеров-неудачников, чтобы получать их деньги. Об этом и речь. Успешен тот трейдер, чья торговая система (набор правил по которым торгует трейдер) эффективнее ТС 84% мелких участников рынка.

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

    Статья, на которую вы сослались, годная, но поверхностная (см. Wikipedia): нет ни слова о том, что деньги трейдеров — капля в море, волатильность товара на forex обеспечивают банки-эмитенты.

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

    «Вам просто говорят не всю правду.» — нет, вам вообще ничего не говорят, просто предлагают «поиграть на forex», что из этого получается см. выше.

    «Вы, кстати, не из зазывал, случаем?» — я даже не сказал, кто мой дилер, не надо кидаться такими обвинениями.

    Comment by Сергей — 03.08.2010 @ 18:03
  23. А что думаешь о книге Куранта и Роббинса «Что такое математика»? И о книгах Пойи, например «Математика и правдоподобные рассуждения» или «Математическое открытие»?

    Comment by Ghost — 03.08.2010 @ 18:11
  24. Роман, «не уверен, что это верный критерий» — это не критерий, но необходимое условие элегантности языка (красивая программа состоит из лаконичных конструкций языка). PERL не элегантен ни разу, это исчадие ада даже обсуждать не хочется.

    «рекурсии, и обработка символьных последовательностей, и цифровые фильтры» — вот это уже интересно. Что сами читали по Lisp, что понравилось?

    Comment by Сергей — 03.08.2010 @ 18:16
  25. Адресовано не мне, но не могу удержаться.
    «Что такое математика»?», «Математика и правдоподобные рассуждения», «Математическое открытие» — это то, что прочитать необходимо. Много узнаете о себе и о своём увлечении (если это математика, конечно). Я читаю эти книги на ночь наравне с произведениями безвременно ушедшего В.И.Арнольда. Такие книги я приобретаю даже если они есть в электронном виде.

    Comment by Сергей — 03.08.2010 @ 18:26
  26. Ghost, увы, ничего из перечисленного не читал, но отзывы слышал положительные.

    Comment by Хеллер — 03.08.2010 @ 18:27
  27. Сергей, ну Perl все же крут, так что не надо :) С помощью него очень быстро и просто решаются прикладные задачи, которые на других языка заняли бы страницы кода (вроде всякого анализа логов, как замена bash, awk и sed).

    По Lisp читал только SICP (настоятельно рекомендую!) и разные документы по PLT Scheme.

    Comment by Хеллер — 03.08.2010 @ 18:31
  28. Сергей, да, дополнительно скажу, что мне не известно алгоритма, который бы на List записывался длиннее, чем на процедурном языке.

    Comment by Хеллер — 03.08.2010 @ 18:33
  29. Не занимаюсь сисадминством, поэтому отношение к PERL предвзятое (для остальных задач он не оптимален).

    «мне не известно алгоритма, который бы на List записывался длиннее, чем на процедурном языке.» — s/длиннее/короче ? Иначе очень подозрительно.

    Comment by Сергей — 03.08.2010 @ 18:49
  30. Сергей, ошибки нет. Я не говорю «короче» — получается реально почти столько же. Любые циклы реализуются через итераторы, если уж сильно нужны. А остальные конструкции занимают ровно тот же объем. Почитайте SICP :)

    Comment by Хеллер — 03.08.2010 @ 19:31
  31. Роман, хорошо, почитаю. Для начала буду учить Emacs Lisp. Может быть внесу посильный вклад в развитие Emacs OS :)

    Comment by Сергей — 03.08.2010 @ 20:00
  32. Роман, мне кажется, или после серии постов про политику популярность блога резко выросла?
    Или людям просто больше нравится читать про математику/информатику?
    Извиняюсь за оффтоп. Наверное, следует создать что-то вроде верхнего поста для таких отвлечённых вопросов.

    Comment by Siddhattha — 03.08.2010 @ 21:11
  33. Siddhattha, мне лично нравится только про математику и экономику. Про политику более кроваво и тошнотворно, чем в тифаретнике, не пишется нигде и никем (да и не надо).

    Роман будет считать меня латентным и бессмысленным, но я не смотрю зомбоящик, не читаю новостей этой страны и не интересуюсь политикой. Это первое правило успешного человека — получать исключительно позитивную информацию. Правды нет — есть ваше отношение к вещам. Читаете про бесчинства милиции и пускаете сопли по поводу насильственной смерти людей, до которых вам не было до сих пор дела, — чувствуете себя плохо, учите латынь и читаете Эйлера в оригинале just-for-fun — чувствуете себя как я, т.е. о..енно!

    Может я чего лишнего сказал, но я таким вижу мир.

    Comment by Сергей — 03.08.2010 @ 21:54
  34. «Мой дилер (крупнейший в стране) в 2007 году опубликовал статистику по своей клиентуре: успешны 16%, остальные сливают депозит. Да, надо быть лучше 84% трейдеров-неудачников, чтобы получать их деньги.» — это за какой срок? Давайте мы сравним это число за нормальный период, скажем, за 27 лет)

    Мысль о своем превосходстве над другими — это, как раз, одна из тех вещей, на которых основаны однорукие бандиты. Более того, обычно те, кто учатся в различных «топ советских» технических вузах и НМУ просто пропитаны комплексом сверхполноценности. В бедных молодых людей просто вбивают мысль о их умственном превосходстве)) А это так хорошо считается просто с мужской психологией — стремление к лидерству и первенству))

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

    З.Ы. Я писал, что статья популярная. Почитайте Джона Богла. Он хорошо рассказывает кто действительно зарабатывает в этих играх)) А Богл — это Богл=))

    Comment by Dmitry — 03.08.2010 @ 21:56
  35. Dmitry, я не имею иллюзий по поводу своих скромных способностей, большинство моих друзей в математике выше меня на голову, и это здорово: я могу у них многому научиться. Я учился в средней школе цыганской деревни Чемодановка Пензенской области и был до 16 лет таким тупорылым быдлом, что вы себе не представляете (не умел решать ур-ие Sin(x)=1 в 11 классе). Но я ценой неимоверных усилий, сопровождая свой путь попытками самоубийства от отчаяния, вылез из этой нищеты и разрухи и кое-чего к своим 20 годам добился. Я обоснованно считаю себя выше и умнее упомянутых 84% неудачников (просто знаю парочку представителей этого сорта людей): я много работаю над собой и только этим обязан всему что в моей жизни есть хорошего (ну и отцу, который пашет за троих чтобы меня поддержать).

    Для меня сейчас существует один критерий реальности любого начинания: если я знаю людей своего круга, которые успешны в этом, я занимаюсь этим. Для forex критерий выполнен. Мне плевать кто на этом выигрывает кроме трейдеров. Я прекрасно знаю схему работы своего дилера и как конкретно и на чём он наваривается. Главное чтобы мне оставался кусочек его пирога.

    Comment by Сергей — 03.08.2010 @ 22:25
  36. Siddhattha, математика самая обсуждаемая тема, но не самая популярная. Видимо просто математикам не хватает общения по жизни что ли :) Наиболее популярны те заметки, на которые ставят ссылки (например, заметку о гибели Кости прочитали более 10000 раз, хотя почти не обсуждали). Из последнего очень популярная заметка об акции в Химках и о фильме об антифе (тут потому что ее распространили по всем антифашистским и анархистским сайтам). Ну и так получается, что ссылки ставят в основном на политику, да.

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

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

    Comment by Хеллер — 03.08.2010 @ 23:14
  37. Роман, тогда логично переименовать уютненький в «Антифа, секс и математика». Я вижу ты веришь в то, что делаешь, понимаю твои цели и методы: к тебе через поисковики идут 10к людей, желающих узнать, что такое антифа и за что убили пацана, они могли узнать об этом и из других источников, но ты хочешь им сказать то, что сам видишь правдой. Просто хочешь, чтобы твою организацию правильно воспринимали, не навариваешься на актуальных темах (баннеров нет у тебя). Ты правильно используешь блог. Подавляющее большинство блоггеров идиоты и постят всякую муть вроде «Рассказ о том, как я сегодня встал, посрал и позавтракал», которую читает разве что конченое быдло.

    Кстати, про ренэйм я пошутил, там ведь математика на последнем месте, а хотелось бы иначе…

    «Видимо просто математикам не хватает общения по жизни что ли» — это ты правильно заключил. Математик с кем попало не общается, а умных людей в общей массе ноль целых хрен десятых, да и летом все в отпусках да на каникулах.

    «реальный опыт участия в самых радикальных мероприятиях имеется» — я бы на твоём месте знал себе цену и не подставлялся. Своё мясо должны рвать боевики, от интеллигенции больше пользы в интернетах. Разве что в последних рядах идти просто для кучности. IMHO.

    Comment by Сергей — 03.08.2010 @ 23:59
  38. Роман,
    Кстати ты вот сказал, что мол Concrete Mathematics это отдых для математика. Ты действительно так считаешь или это просто демонстрация презрения к математике второй культуры? Просто на мой взгляд всякие комбинаторные задачи сложнее общей топологии или теории Галуа.

    Comment by measure_0 — 04.08.2010 @ 00:10
  39. «Просто на мой взгляд всякие комбинаторные задачи сложнее общей топологии или теории Галуа.» — сравниваете мягкое с тёплым. Советую брошюру великого Колмогорова «О профессии математика». Там классик выделяет 3 типа математических способностей: логические, геометрические и комбинаторные. Указанные вами задачи аппелируют к разным видам способностей, которые у разных людей развиты, сами понимаете, по-разному.

    Comment by Сергей — 04.08.2010 @ 00:29
  40. measure_0, нет, к «второй культуре» никакого презрения не имею. Даже люблю, но к сожалению нет времени серьезно заняться — комбинаторика и разные ветви дискретной математики для меня темный лес по большей части. Просто Concrete Mathematics действительно очень простая — все выкладки разжевываются и на ложечке в рот кладутся, разве нет?

    Comment by Хеллер — 04.08.2010 @ 09:52
  41. >Советую брошюру великого Колмогорова «О профессии математика».
    Это брошюра сделала меня плакать слезами печали и отчаяния.

    Comment by Siddhattha — 04.08.2010 @ 12:42
  42. Siddhattha, «Это брошюра сделала меня плакать» — почему? Мне наоборот придала уверенности в себе.

    Comment by Сергей — 04.08.2010 @ 14:28
  43. «Для меня сейчас существует один критерий реальности любого начинания: если я знаю людей своего круга, которые успешны в этом, я занимаюсь этим. » — почему тогда форекс — торговля валютой, а не апельсинами, керосином или нефтью? Вы понимаете, чем отличается от них форекс? Вы же должны понимать, что из всех продуктов вы выбираете сыр, который вам настойчиво суют. Но вы решаете, что умнее 87%.

    Ах 87%. За какой срок, я вас спрашиваю? Есть мировая статистика, что за 27 лет (которые берутся из соображения, что в 23 человек заканчивает институт, а к 50 годам должен быть богат) обыгрывают индекс 3%. Это тупая, обкатанная поколениями статистика. Уже не 10%, не 14%, а 3%. При этом не обязательно обыгрывают на порядки, а просто — обыгрывают.

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

    З.Ы. «не более 3-х часов в неделю» — ну-ну.

    Comment by Dmitry — 04.08.2010 @ 16:07
  44. Dmitry, «почему тогда форекс – торговля валютой, а не апельсинами, керосином или нефтью?» — потому что с депозитом в 10 т.р. можно работать только на форекс, а большего я вложить не готов.

    «Вы понимаете, чем отличается от них форекс?» — да, хорошо понимаю.

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

    «За какой срок, я вас спрашиваю?» — по итогам 2007 года, т.е. если за весь год счета открыли N клиентов, то к концу года у 84% сумма депозита и снятых средств меньше суммы переводов на депозит.

    «обыгрывают индекс» — такого понятия на forex нет (как и самого «индекса»). Сдаётся мне, вы почитали про фондовые рынки и думаете, что forex мало чем от них отличается. Захотите узнать правду — почитаете именно про forex, не захотите — не надо. Я только скажу, что общего мало (хотя бы потому что форекс-трейдер — спекулянт, а не инвестор).

    «чтобы другие читатели этого блога задумались прежде чем покупаться так просто» — мне безразлично будет ли работать на этом рынке кто-то или нет, моей выгоды в этом не будет. Изначально я задал вопрос Роману, он ответил, и вопрос был бы исчерпан, если бы не вы. Но мне приятно, что вы ответили. Вы сознательный собеседник.

    Предметно можно будет обсудить всё через год-полтора, когда у меня на руках будет торговая система и опыт торговли реальными деньгами. А сейчас давайте оставим эту тему.

    Comment by Сергей — 04.08.2010 @ 17:18
  45. Роман, а с теоретической механикой вас что-нибудь связывает? Как вам «Математические методы классической механики» Арнольда? Я знаю, что в НМУ механики как таковой нет.

    Comment by Сергей — 04.08.2010 @ 18:27
  46. Сергей, с механикой у меня совсем никак, как и вообще с любой областью физики.

    Comment by Хеллер — 04.08.2010 @ 19:20
  47. Роман, «как и вообще с любой областью физики» — механика самостоятельная наука и гораздо ближе к математике, чем к физике. Методы механики принципиально отличаются от физических, и единственное существенное, чем механика напоминает физику, — наличие стадии формализации в процессе решения большинства задач.
    Классическая механика, конечно, выросла из раздела теоретической физики, но математикой по ходу своего развития пропиталась настолько, что при разделении физматов на «маты» и «физы» ушла к первым как самостоятельное отделение.

    Рекомендую указанную книгу Арнольда, он любил механику и умел преподать её красиво.

    Comment by Сергей — 04.08.2010 @ 19:39
  48. «почему? Мне наоборот придала уверенности в себе.»
    В школе математику преподавали излишне формально и сухо, у меня постепенно стал пропадать к ней интерес.
    В итоге, я пошёл в гуманитарный класс: математика полтора часа в неделю, которую я конечно же не учил.
    Потом я поступил на химико-фармацевтический институт. На первом курсе интерес к математике постепенно стал возвращаться, и я начал заниматься самообразованием.
    Первые полгода был курс т.н. «высшей математики». Экзамен я сдал, но, из-за слишком больших пробелов в знаниях, на самую низкую оценку на тройку, зато хотя бы сам.
    Сейчас я учусь более системно, достиг кое-каких успехов, но по-прежнему остаюсь тупорылым быдлом.

    Comment by Siddhattha — 04.08.2010 @ 20:23
  49. Siddhattha, «по-прежнему остаюсь тупорылым быдлом» — не надо самоуничижения, оно бессмысленно. Быдло — это млекопитающие без внутреннего мира и высоких устремлений. Ты, по-видимому, не из этого множества. Если учишься в Москве, то поступай в НМУ (если ещё не поступил), занимайся любимым делом, если что — обращайся, поможем. Всё, что преподаётся в НМУ на первом курсе, можно объяснить понятно с хорошими примерами (даже если лектор этого не сделал), так что в случае затруднений можешь обращаться.

    Comment by Сергей — 04.08.2010 @ 20:36
  50. К сожалению, живу не в Москве и даже не в России.
    Я постоянно работаю над собой, хотя профессиональным математиком стать уже не рассчитываю, но, может, года через 4 выйду на хороший уровень.

    Насчёт «Это брошюра сделала меня плакать». Просто до ненависти обидно, сколько времени потрачено впустую из-за какой-то истеричной школьной училки, имя которой я уже даже не помню.

    Comment by Siddhattha — 05.08.2010 @ 01:07
  51. Siddhattha, «Просто до ненависти обидно» — как я тебя понимаю! (см. пост №35). Главное не отчаивайся, математиками даже 30-летние гуманитарии иногда становятся, надо только найти научного руководителя и написать диссер.

    Comment by Сергей — 05.08.2010 @ 09:08
  52. Сергей, а что послужило причиной твоего просветления?

    >я ценой неимоверных усилий, сопровождая свой путь попытками самоубийства от отчаяния, вылез из этой нищеты и разрухи
    Расскажи поподробнее.

    >математиками даже 30-летние гуманитарии иногда становятся
    Есть исторические примеры? Меня бы они очень сильно мотивировали.

    Comment by Siddhattha — 05.08.2010 @ 22:54
  53. >>математиками даже 30-летние гуманитарии иногда становятся
    >Есть исторические примеры? Меня бы они очень сильно мотивировали.
    Эдвард Виттен :)

    Comment by sh — 06.08.2010 @ 00:19
  54. Siddhattha, «что послужило причиной твоего просветления?» — я с детства был крайне любознателен, обожал решать логические задачи, пробовал заниматься электротехникой. Но ввиду того, что родители-колхозники плохо меня воспитывали и в школе не учили точным наукам (правда, вычитать и умножать всё-таки научили), выраженного интереса к математике я не проявлял, более того, училка-дура, не умевшая решать часть С из ЕГЭ, привила мне ненависть к математике. Внезапное просветление, снизошедшее на меня в 18 лет, по-видимому вызвано тем фактом, что до 10 лет мне математика всё-таки нравилась. Чувство удовлетворения от решения логических задач засело в подкорке, но ни разу за 8 лет я его не ощутил, т.к. математику стараниями млекопитающих, меня окружавших, возненавидел.

    Но в один прекрасный день у меня в руках оказалась книжка Ткачука, я поразился красоте математических задач, не имевших ничего общего с тем дерьмом, которое я списывал у задротов на контрольных в школе. Я был в 11-м классе и не мог сам решить ни одной задачи из этой книги. Что я делал, чтобы наверстать 8 лет жизни, потраченных впустую, как я рвал жопу чтобы научиться думать, я даже не вспомню сейчас: плохое быстро забывается.

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

    «Есть исторические примеры?» — Лейбниц.

    Comment by Сергей — 06.08.2010 @ 12:02
  55. Сергей, у меня очень похожая история. Не деталями, но по сути. Видимо, распространенный сценарий.

    Comment by Хеллер — 06.08.2010 @ 14:18
  56. Роман, «Видимо, распространенный сценарий» — мой жизненный опыт говорит о другом: такие случаи единичны. Все более-менее сознательные люди из моих знакомых — пятисемиты и сунцы, дети учёных, получившие блестящее образование, победители олимпиад. Общаясь со мной, никто из них даже не предполагает, из какого говна я вылез.

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

    А сейчас мы с тобой навёрстываем упущенное, «бежим за трамваем, пытаясь вскочить на его подножку» (с).

    И таких рас***дяев, к счастью, единицы в приличных местах.

    Comment by Сергей — 06.08.2010 @ 15:43
  57. Cергей, респект. Мотивирует. У меня очень всё похоже..

    Comment by koljagm — 06.08.2010 @ 16:35
  58. а че за книжка Ткачука, кстати?

    Comment by koljagm — 06.08.2010 @ 16:42
  59. koljagm, В.В.Ткачук «Математика — абитуриенту»

    Comment by Сергей — 06.08.2010 @ 17:22
  60. Я, пожалуй, соглашусь с кем-то из комментариев, кто предложил подробно разбирать всякие интересные задачи.

    Comment by Siddhattha — 11.08.2010 @ 20:37
  61. Ой, не туда запостил. Хотел написать в пост про математические записи.

    Comment by Siddhattha — 12.08.2010 @ 23:18
  62. […] в заметке, где я ругал «Искусство программирования» того же Кнута, я эту книгу уже рекомендовал читателям. […]

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

    Comment by ДОК — 29.07.2014 @ 16:58
  64. @ ДОК:
    Что вы знаете о «хорошей базе знаний»?

    Comment by Хеллер — 30.07.2014 @ 11:40
  65. @ Хеллер:
    Хорошо, сомневаюсь в прямоте этого вопроса, но раз вы действительно имеете такую первокласную подготовку, зачем обобщать на остальных? Я просто уверен что вы не считаете TAoCP книгой для чтения в трамваях, ибо наверняка знаете что в технических университетах даже по математике не дают соответствующих знаний, или вы считаете иначе?

    Comment by ДОК — 30.07.2014 @ 13:54
  66. @ ДОК:
    То что для выпускника ВУЗа это кажется сложным и требующим подготовки — это, конечно, факт. Но вопрос в том, что это совершенно не оправдывает чтение Кнута. Во-первых, она устарела. Насколько я помню, не смотря на подробный и глубокий анализ множества примитивных сортировок, даже такая простая вещь как сортировка строк не рассматривается в книге. Общие концепции — не рассматриваются. Вместо того, чтобы рассказать о «разделяй и влавствуй», «жадных алгоритмах» и «динамическом программировании», всё доказывается крайне неказисто по индукции. И это самые тривиальные примеры. Сам выбор тем — крайне узкий. Нет ни стохастических алгоритмов, ни алгоритмов на графах, ни конкуррентных алгоритмов, ничего вообще.

    Я не спорю, что Кнут читается тяжело. Но это минус, а не плюс. Эта сложность ничем не оправдана.

    Comment by Хеллер — 31.07.2014 @ 09:38
  67. Что ж, я был не прав по отношению к вам, надеюсь это послужит мне уроком.
    Я действительно много времени просидел над первым томом, особенно над математическим введением и ещё над случайными числами второго тома. Что вы посоветуете вместо Кнута? кстати я прочитал вашу книгу по математике, материал понравился , в особенности понравилось что трудно было только в плане самого мышления, а не как у кнута из того что я не мог понять как он это вывел. Не хотел бы поднимать вопрос но я в начале тома 2 оставил не разрешенным вопрос в конце главы 3.2.1 формулы 7,8. Я не мог понять как он выразил Xn через Yn я приходил к выводам что это не возможно так как при Xo =0, мы получаем выражение которое не имеет смысла, т.е. a, при а!=0.

    Comment by ДОК — 31.07.2014 @ 21:31
  68. Т.е а деленное на ноль, при а!=0

    Comment by ДОК — 31.07.2014 @ 21:33
  69. @ ДОК:
    Насчёт альтернатив Кнуту, я бы назвал следующие книги:
    1. Никлаус Вирт «Алгоритмы + структуры данных = программы» — книга совсем для начинающих и абсолютно тривиальная. Хороша тем, что не требует начальной подготовки, именно с неё списывали программу отечественных вузов для первого курса и в общем-то читается книга за два вечера. Рассматривает хороший набор базовых алгоритмов. Но если об алгоритмах уже что-то знаете, то читать смысла нет.

    2. Сейджвик «Алгоритмы» — хорошая книга, недостаток в том, что очень примитивная математика. Сейджвик в общем-то во многом опирался на «Искусство программирования», адаптируя материал под современные реалии и максимально упрощая математику. Но сам выбор тем куда правильнее, нежели чем у Кнута.

    3. Кормен «Введение в алгоритмы». К сожалению к моменту, когда я узнал о существовании этой книги, я уже практически весь её материал знал из различных статей, поэтому книгу я не читал. Но судя по оглавлениям и отзывам это лучшее что есть.

    4. Сейджвик «Аналитическая комбинаторика» — опять же не читал, но знающие люди говорят, что тем, кто хочет понять как устроен современный анализ алгоритмов, нужно читать. Насколько я понимаю в основном там про производящие функции, это действительно сейчас основной инструмент работы математика в алгоритмах помимо теории вероятностей.

    Этот список не целиком конечно покрывает программу Кнута — в частности тут нет о генераторах случайных чисел и об арифметике полиномов. Не очень знаю где об этом можно просто прочитать кроме как во втором томе Кнута, но реально это темы нужны единицам. Про полиномы не знаю вообще ничего (кажется, тема эффективной манипуляции полиномами сама собой умерла с ускорением процессоров). Задача «обычных» генераторов случайных чисел уже решена, Кнут более чем достаточен, хотя можно и просто какие-то статьи почитать. Если речь идёт о криптостойких генераторах случайных чисел, то тут надо читать алгебраическую геометрию и потом отдельно про эллиптические кривые. Потом уже про случайные числа. Но в этой области я посоветовать не могу, так как ни эллиптическими кривыми ни случайными числами не занимался.

    Comment by Хеллер — 01.08.2014 @ 19:09
  70. @ ДОК:
    Про ваш вопрос у Кнута у нас видимо разные издания. У меня форумула 6 в 3.2.1 — это «Лемма R», а формула 7 — это линейный рекурсивный генератор с c=0, но там нигде не вижу упоминания Y. Скиньте ссылку на pdf которым пользуетесь и на конкретный номер страницы.

    Кстати, на тему случайных чисел есть ещё интересная штука под названием Colmogorov Complexity. Если интересуетесь, советую посмотреть в эту сторону.

    Comment by Хеллер — 01.08.2014 @ 19:32
  71. Спасибо за исчерпывающий ответ, весьма вам признателен. librarum.org/book/10885/22 не понял как он вывел формулу 8.

    Comment by ДОК — 01.08.2014 @ 20:46
  72. @ ДОК:
    Я бы порекомендовал забыть о нотации

    x = y mod m

    и

    x = y (mod m)

    Ну вернее оно иногда полезно, но редко. Вместо этого пишите просто

    x = y

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

    Чтобы получить формулу 8, во-первых рассмотрите формулу 6 при n=0, а затем вынесите за скобки (a^k-1)/b=Y_n. После этого всё тут же должно встать на свои места, если использовать простую нотацию для колец.

    Comment by Хеллер — 02.08.2014 @ 03:08
  73. @ Хеллер:
    Спасибо, вывел, но все же не понимаю зачем такое представление
    формулы (8)? он хотел показать свойство симметричности в этом частном случае -> X_n≡Y_n (mod m), Y_n≡X_n (mod m) ?

    Comment by ДОК — 02.08.2014 @ 15:37
  74. @ ДОК:
    Вот на это уже не могу ответить, надо читать дальше и смотреть как он это использует. Я это уже очень давно читал и не помню.

    Comment by Хеллер — 02.08.2014 @ 16:38
  75. @ Хеллер:
    Спасибо вам за все.

    Comment by ДОК — 02.08.2014 @ 22:38

RSS feed for comments on this post. TrackBack URI

Оставить комментарий

This work is licensed under GPL - 2009 | Powered by Wordpress using the theme aav1
SEO Powered by Platinum SEO from Techblissonline