|
Гипергеометрическое распределение против суверенной демократии
|
14 Мар, 2008 @ 11:38
|
|---|
|
Я уже упоминал, что математики давно разобрались с демократией (а особенно с так называемыми «демократическими выборами»). Пришло время кое-что добавить в эту корзину. Ежели кто помнит, то пару недель назад я опубликовал несложную вероятностную задачу для читателей, которая заключалась в поиске вероятности для определённой выборки. Тогда несколько человек дали абсолютно верный ответ, но никто не стал задумываться о том, какие прикладные следствия имеет эта задача.
Итак, нижеследующая формула является формулой для расчёта значений гипергеометрического распределения, которое используется для моделирования количества удачных выборок без возвращения из совокупного множества элементов, в которых имеются элементы с дефектами:
 Что она может дать? Всё очень просто. Абсолютно также недавно я рассматривал миф о том, что Россия должна принадлежать нерусским на тех же самых условиях, что и Русским. В этом рассмотрении изучался национальный состав «республики» Адыгея, где при 65 % Русского населения в выборном органе власти Русские занимают всего 40 % мест. Вышеприведённая формула как раз и позволит рассчитать вероятность такого события. Впрочем, рассчитывать вероятность в данном случае достаточно сложно, поскольку числа слишком большие, а вот оценить весьма несложно. На языке Haskell был быстро написан набор функций для оценки вероятностей:
combination :: Double -> Double -> Double
combination k n = product [(k + 1)..n] / product [1..(n - k)]
probability k' k n' n = (combination k' n' * combination (k - k') (n - n')) / combination k n
probabilities k n' n = [probability k' k n' n | k' <- [0..k]]
maxProbability k n' n = getMax $ zip (probabilities k n' n) [0..k]
where
getMax l = getMax' l (0, 0)
getMax' [] v = v
getMax' ((x, n):ps) (y, m) = if (x > y)
then getMax' ps (x, n)
else getMax' ps (y, m)
При помощи этих функций, к примеру, можно оценить вероятность существующего положения в выборном органе власти «республики» Адыгея. Она находится где-то около 6.3 %. Другими словами, подобное положение, какое мы наблюдаем наяву, могло получиться лишь в шестидесяти трёх случаях из тысячи при равномерном распределении представителей всех национальностей при выборах (а именно такое и ожидается в случае демократических выборов). Максимальная же вероятность имеет распределение мест в выборном органе, при котором Русские занимают около 70 % мест — вероятность этого события чуть выше 26 %.
Теперь можно взять таблицу национальных регионов России, по каждому изучить распределение мест в выборных органах власти и рассчитать вероятности. Думаю, что картина будет очень интересна.
|
|
Книга «Справочник по языку Haskell» на Озоне
|
18 Фев, 2008 @ 11:51
|
|---|
|
Не успела моя новая книга «Справочник по языку Haskell» выйти в свет, как сразу же попала в интернет-магазины, в том числе и на Озон (в этом году издательство сработало споро). Посему представляю:

|
В новой книге, являющейся первым полноценным описанием языка Haskell и его стандартных библиотек на русском языке, читатели узнают, как можно использовать язык Haskell на практике, какие идиомы имеются в этом языке, почему бесточечная нотация называется «бесточечной», как устроен ввод/вывод (без углубления в объяснения монад), почему все типы данных в языке являются алгебраическими и многое, многое другое. Также в книге представлены описания всех программных сущностей, описанных в стандартных библиотеках двух наиболее распространённых трансляторов — GHC и HUGS. |
Все те, кто ранее прислал мне заявки на приобретение книги, могут также приобрести книгу в интернет-магазине. Тем не менее, сегодня я передаю весь список заказавших в издательство для обработки.
|
|
На месте не сидится, начинаем новую книгу
|
14 Фев, 2008 @ 12:00
|
|---|
|
Итак, после того, как моя новая книга «Справочник по языку Haskell» увидела свет, можно сделать анонс новой работы. Ещё прошлым летом мы с Адептом запланировали работу над новой, ещё более интересной книгой, которая будет раскрывать не то, чтобы аспекты функционального программирования, но нечто более глубинное. Итак, анонс.
Мы с Дмитрием начинаем работу над книгой, техническое название которой — «Синтаксический анализ на языке Haskell». Она будет рассматривать проблемно-ориентированное программирование и построение проблемно-зависимых языков (DSL). Кратко будут описаны методы синтаксического анализа, методы проектирования DSL, будут приведены обширные примеры DSL, а также подведён базис для новых горизонтов — анализа естественных языков. Концепция и расширенное содержание новой книги уже написано.
Книга будет писаться в полузакрытом режиме, когда обсуждение черновых вариантов книги будет производиться только с доверенными людьми, экспертами. Для этого создано закрытое сообщество sa_in_haskell, куда мы приглашаем всех заинтересованных экспертов. Для того чтобы попасть в сообщество необходимо направить мне электронное письмо по адресу darkus.14@gmail.com, в котором в паре абзацев рассказать про себя и про свой опыт использования языка Haskell, ещё в паре абзацев рассказать о том, почему имеется интерес к книге и чем каждый конкретно эксперт будет полезен. Мы с Дмитрием проведём объективный выбор, и все, кто покажется нам интересными, будут приглашены в сообщество (не обещаем, что все, приславшие письма, будут приглашены).
Прошу понять правильно, это не выделение некоего «элитарного» клуба по интересам. Нисколько. Просто опыт написания предыдущих книг показал, что наиболее полезными являются заинтересованные читатели, которые принимают активное участие в обсуждениях и корректировках. А неактивные люди, запросившие черновики, но не сделавшие практически ни единого нажатия кнопки для помощи авторам, — просто бесполезны. Так же, кстати, поступили и авторы книги «The Real World Haskell», так что не мы первые, кто идёт по такому пути.
Итак, жду писем. Благодарю за внимание.
|
|
Моя новая книга вышла в свет
|
4 Фев, 2008 @ 12:52
|
|---|
|
Всех своих читателей и других заинтересованных лиц спешу уведомить, что издательство ДМК-Пресс выпустило в свет мою новую книгу «Справочник по языку Haskell». На прошлой неделе книга вышла из типографии и поступила на склад издательства. Как и со своей предыдущей книгой тем, кому интересно, предлагаю организовать процесс закупки по предварительной «записи». Для этого любой заинтересованный может послать мне на адрес электронной почты darkus.14@gmail.com свои координаты (ФИО полностью, контактный телефон, обратный адрес для пересылки книги). Соответственно я обязуюсь всю эту информацию передать в издательство для организации рассылки книги всем желающим. Такое взаимодействие должно быть актуально для тех, кто живёт не в Москве, поскольку до многих городов книга может просто не доехать.
Поскольку работа над книгой «Язык Haskell для профессиональных программистов» была несколько заморожена, эта книга явилась некоторым побочным эффектом от создания той обещанной в начале года. Но процесс медленно, но верно идёт, обещанная книга будет. А поскольку новая книга писалась в «закрытом» режиме, чтобы было как-то интересно, публикую оглавление книги.
Введение Часть I. Синтаксис и идиомы языка Глава 1. Функции Глава 2. Типы данных Глава 3. Классы типов и экземпляры классов Глава 4. Модули Глава 5. Сводная информация Часть II. Стандартные библиотеки Глава 6. Стандартный модуль Prelude Глава 7. Пакет модулей Control Глава 8. Пакет модулей Data Глава 9. Пакет модулей Debug Глава 10. Пакет модулей Foreign Глава 11. Пакет модулей System Глава 12. Пакет модулей Text Заключение Библиография
В первой части кратко описывается синтаксис языка, некоторые приёмы программирования. Вторая часть полностью посвящена описанию стандартных библиотек языка Haskell в перечисленном объёме (это — практически полностью стандартная поставка за исключением некоторых специализированных пакетов).
Цену книги не знаю, поскольку она только что поступила на склад издательства. Судя по всему, цена будет примерно такая же, как и на первую книгу (плюс-минус 100 рублей), поскольку качество печати такое же, объём чуть меньше (около 550 страниц). Книгу можно уже сегодня заказывать в холдинге Альянс-Книга, выслав открытку или письмо по почтовому адресу: 123242, г. Москва, а/я 20 или по электронному адресу: post@abook.ru. При оформлении заказа следует указать адрес (полностью), по которому должна быть выслана книга, фамилия, имя и отчество получателя. Желательно указать свой телефон и электронный адрес.
|
|
Опрос о журнале по декларативному программированию
|
16 Ноя, 2007 @ 12:29
|
|---|
|
Адептам функционального, логического и прочего декларативного программирования направляется сей опрос, результаты которого могут послужить причиной появления журнала по декларативному программированию на русском языке. У нас подобных журналов нет, если не считать спорадические статьи (мои в том числе) в журналах типа «Потенциал». Как известно, на текущий момент использование декларативной парадигмы в стезе программирования крайне мало́, поэтому популяризация идей декларативного программирования видится мне чрезвычайно насущной. В связи с этим прошу ответить на следующие вопросы:
1. Необходимо ли на Ваш взгляд наличие такого журнала? В каком виде — бумажном, электронном?
2. Сколько денег Вы готовы платить за номер (скажем, 100 страниц формата А5 на приличной бумаге, статьи разного характера от обучающих начальным азам до серьёзных теоретических проработок)?
3. Готовы ли Вы писа́ть или переводить статьи для подобного журнала (возможно, даже, за небольшой гонорар)?
4. Любые комментарии на эту тему приветствуются.
|
| » Аллигаторы и их я́йца |
Не знаю, как все, но некоторые мои читатели интересуются веяниями науки о вычислениях, функциональным программированием и прочими интересными вещами, с этим связанными. Посему для таковых сообщаю интересную вещь. На портале Традиция мной осуществлён перевод и вёрстка описания настольной игры́ для детей, которая называется «Аллигаторы и их я́йца».
Эта игра в наглядном виде демонстрирует основы l-исчисления для детей дошкольного и младшего школьного возраста. Само собой, что в игре ни сло́ва нет ни про связанные и свободные переменные, ни про l-термы, ни про что-либо иное из теории науки о вычислениях. Всё показано интуитивно при помощи простых понятий. Играющий даже не поймёт, что на са́мом-то деле он не играет, а производит вычисления.
Однако к описанной реализации игры́ у меня есть нешуточные претензии. Во-первых это то, что аллигаторы пожирают другие семьи, а пото́м умирают от этого. Для ребёнка идея о смерти родителя слишком тревожащая, а потому не может использоваться в детской игре. Во-вторых, вылупление из яйца́ того са́мого, что только что скушал аллигатор — это нелогично (хотя, для детишек, быть может, всё нормально).
Поэтому предлагаю конкурс — кто предложит наиболее адекватную модель, схожую с предложенной, чтобы она была логична для детей дошкольного и младшего школьного возраста, и чтобы она не была травмирующей с точки зрения психологического воздействия. У меня самого́ есть две идеи, но они мне не очень нравятся...
5 Июн, 2007 @ 19:20
|
| » Категории для работающего математика |
Некоторое время назад купил себе книгу С. Маклейна «Категории для работающего математика». Прекрасное издание, язык понятный, примеры и упражнения — замечательные. Конечно, чтобы читать, надо обладать не только базовым математическим образованием, но и способностью к высокой степени абстракции. Но книга сто́ит того, чтобы быть прочитанной, а пото́м занять на полке учёного достойное место.
Так что всем адептам функционального программирования категорически рекомендую приобрести сию книгу, если её у вас ещё нет.
Книга написана выдающимся американским математиком С. Маклейном, одним из создателей теории категорий, рассматривающей свойства отображений (морфизмов) между объектами с определённой структурой. Овладение категорным языком и умение его использовать позволяет современному математику видеть и осознавать единство науки. Особое внимание в книге уделено понятиям сопряжённого функтора и моноидальной категории, которые находят разнообразные применения. Для широкого круга специалистов, интересующихся современными проблемами математики, включая студентов и аспирантов. Перевод осуществлён со второго издания книги.
29 Май, 2007 @ 10:44
|
| » Катаморфизм и прочие интересные вещи |
Те мои читатели, что заинтересованы в изучении функционального программирования, наверняка будут обрадованы такой информацией. На русском общеобразовательном ресурсе «Традиция» я открыл тему ФП, λ-исчисления, комбинаторной логики и теории категорий (а также всего остального, что с этими областями научной деятельности связано). Ведь «Традиция» — это именно общеобразовательный ресурс, который основан на технологии «Вики», что позволяет каждому участвовать в создании и проработке материалов. К тому же он лишён многих недостатков википедии, где имеется обширное педерастическое лобби.
Сейчас я время от времени занимаюсь переносом материалов, переводом интересных статей и написанием новых. Из числа последнего: статья «Катаморфизм», которая выставляется в категорию «хорошие статьи» (правда, критерии «хорошести» ещё неопределенны). Кроме того, ресурс можно использовать для перевода материалов из иностранных источников (например, статья «Изоморфизм Карри-Говарда» постепенно переводится в настоящий момент).
Так что всех интересующихся и небезразличных объявленным темам прошу присоединяться.
24 Май, 2007 @ 20:08
|
| » Вот, как бывает |
После того, как я написа́л книгу «Функциональное программирование на языке Haskell» прошло немного времени, как со мной связался никто иной, как Г. М. Сергиевский — мой преподаватель, который в своё время обучил меня основам этого са́мого функционального программирования. Надо отметить, что я был весьма удивлён сему событию, ибо не общались мы с ним уж лет пять, как раз после того, как я апробировал свой курс лекций на кафедре Кибернетики в МИФИ.
Что же направило уважаемого Георгия Максимовича ко мне? Оказалось всё просто. Обнаружив мою книгу на прилавках компьютерных магазинов, они решили с Н. Г. Волчёнковым (это ещё один мой преподаватель, который вёл у меня курс по логическому программированию) написа́ть свою книгу, в которой изложить свои наработки в этой теме. Книга будет называться «Функциональное и логическое программирование», а повествование, соответственно, будет вестись с использованием языков программирования Prolog и Haskell.
Ну а ко мне обратились за помощью в деле консультирования по вопросам языка программирования Haskell. Вот такие дела́...
21 Май, 2007 @ 21:42
|
| » Анонс ЯХдПП: Седьмая глава |
Наконец-то спешу анонсировать выход первой главы́ второй части моей новой книги «Язык Haskell для профессиональных программистов». Вторая часть непосредственно посвящена всем самым интересным программным трюкам и методикам, которые имеются в языке Haskell, а потому для программистов будет наиболее интересна. Однако же седьмая глава книги (первая во второй части) всё же посвящена некоторой теоретической основе функционального программирования, и пусть простят меня алчущие практической стороны́ — без описания l-исчисления и комбинаторной логики я обойтись никак не мог.
Тем же, кто ещё не участвует в «бета-чтениях» книги, но желал бы поучаствовать: присылайте свои ФИО и предпочитаемый язык программирования на адрес darkus.14@gmail.com, после чего я вышлю введение и предыдущие гла́вы (очередная глава высылается после комментариев, замечаний и предложений по прочитанному).
Также напоминаю, что коллективная работа над ошибками в предыдущей книге ведётся здесь.
Предыдущие анонсы: Введение Глава 1 Глава 2 Глава 3 Глава 4 Глава 5 Глава 6 Заключение части I
3 Май, 2007 @ 18:14
|
|
|