background preloader

Programming

Facebook Twitter

Алгебраические типы данных и их использование в программировании. Аннотация: Статья рассматривает важную идиому программирования — алгебраический тип данных (АТД). Приводится теоретическая база, которая лежит в основе практического применения АТД в различных языках программирования. Прикладные аспекты рассматриваются на языке функционального программирования Haskell, а также кратко на некоторых других языках программирования.Algebraic Data Types (ADT) is an important programming idiom.

A theoretical background is given that forms a foundation for practical application of ADT in various programming languages. Practical aspects of ADTs are discussed using Haskell and are also briefly outlined for certain other programming languages.Обсуждение статьи ведётся по адресу Введение Пусть K — множество всех множеств, которые не содержат сами себя в качестве своего подмножества.

В общем, куда ни кинь — всюду клин. В частности, решение приведённой в начале статьи антиномии было предложено самим Б. 1 Мотивация где:

Js

Язык и среда R - ROC кривые. Перевод записи в моем английском блоге. ROC - Receiver operating characteristic, это график, позволяющий оценить качество разделения двух классов. Кроме визуальной составляющей, есть численная характеристика ROC AUC - Area under ROC curve (AUROC, ROC AUC), площадь под ROC кривой, чем выше значение - тем лучше, 0.5 - плохая классификация, не отличающаяся от равновероятностной, больше 0.75 - считается хорошая классификация, и по моему мнения больше 0.8 - уже прекрасно и публикабельно, если значение 0.2 - то вам необходимо обратить лейблы. ROC curve является все навсего графиком двух значений: соотношения количества правильно и неправильно классифицированных признаков при каком-то выбранном значений (см.алгоритм построения ROC кривых здесь pdf - язык простой, но заморский).

История этого метода прозаичная - необходимо было определить качество распознавания сигналов радаров японцев среди всех остальных. В R я обычно использую ROCR, хотя алгоритм реализован во многих других пакетах. Вероятностное программирование. Вступление Эта публикация является первой частью краткого вступления с иллюстрациями в вероятностное программирование, которое является одним из современных прикладных направлений машинного обучения и искусственного интеллекта. Во время написания этой публикации я с радостью обнаружил, что на Хабрахабре совсем недавно уже была статья о вероятностном программировании с рассмотрением прикладных примеров из области теории познания, хотя, к сожалению, в русскоговоряющем Интернете пока мало материалов на эту тему. Я, автор, Юра Перов, занимаюсь вероятностным программированием в течение уже двух лет в рамках своей основной учебно-научной деятельности.

Вероятностное программирование я люблю определять как компактный, композиционный способ представления порождающих вероятностных моделей и проведения статистического вывода в них с учетом данных с помощью обобщенных алгоритмов. «Обычное» программирование А теперь вероятностное программирование Пример Байесовской линейной регрессии Материалы. Почему юнит-тесты не работают в научных приложениях. В этой статье я хочу поделиться своим опытом разработки научных приложений, и рассказать, почему Test-Driven Development и юнит-тесты не являются панацеей, как принято считать в последнее время, по крайней мере с точки зрения нахождения программных ошибок. Почему же? Статья будет состоять из нескольких разделов: «Введение», в котором я расскажу, почему решил написать ее«Иллюстрационный алгоритм». Здесь будет кратко описана научная проблема и алгоритм, который будет иллюстрировать дальнейшее изложение«Недостатки юнит-тестов» Здесь будут приведены аргументы, объясняющие недостатки юнит-тестов для научных приложенийЗаключение Сразу замечу, что я не рассматриваю пользу от TDD как от способа разработки архитектуры, а исключительно с точки зрения тестирования программы.

Введение Иллюстрационный алгоритм В последние 20 лет развивался необычный метод для моделирования гидродинамики: Lattice-Boltzmann Method (далее — LBM) [4], [5]. Гидродинамика, как известно, описывается уравнением Навье-Стокса. Практическое руководство по Jekyll. Jekyll на Хабрахабре уже светился. Коротко говоря: это система генерации статических сайтов, ориентированная на блоги. Основная особенность: используется на Github Pages, что позволяет держать исходники сайта в репозитории на Github — а несколько кэширующих серверов его в пределах 10 минут после коммитов будут собирать и отображать посетителям. Если интересно больше и коротко: рекомендую к прочтению эту статью, часть материала которой я упомяну и здесь. А я расскажу о Jekyll поподробнее: как им можно пользоваться по назначению, для чего им пользоваться не по назначению, и на что он вообще способен.

Статья ориентирована больше на тех, кто ни с чем подобным ранее не работал (как я, работавший ранее с WordPress), и в большей части статьи Jekyll будет рассматриваться именно как средство ведения блога, хотя ближе к концу будет нечто совсем другое. Из всех существующих платформ для блогов (движков, сервисов, генераторов) Jekyll мне показался странно выделяющимся. Написание постов icon: tags.

CSharp

Java. 50 цитат о программировании всех времён. Delphi. Очень полезные команды Linux на одном листе [Записки на полях] Lex's Blog. Python. Ruby. RSDN. Оглавление. Другие файлы - расширения, форматы файлов. С++ Project Euler. Problems. Все задачи - Проект Эйлера. Пусть sum(A) - сумма элементов для любого множества чисел A. Рассмотрим множество B = {1,3,6,8,10,11}. Существует ровно 20 подмножеств B, которые состоят из трех элементов, а суммы этих подмножеств равны: sum({1,3,6}) = 10, sum({1,3,8}) = 12, sum({1,3,10}) = 14, sum({1,3,11}) = 15, sum({1,6,8}) = 15, sum({1,6,10}) = 17, sum({1,6,11}) = 18, sum({1,8,10}) = 19, sum({1,8,11}) = 20, sum({1,10,11}) = 22, sum({3,6,8}) = 17, sum({3,6,10}) = 19, sum({3,6,11}) = 20, sum({3,8,10}) = 21, sum({3,8,11}) = 22, sum({3,10,11}) = 24, sum({6,8,10}) = 24, sum({6,8,11}) = 25, sum({6,10,11}) = 27, sum({8,10,11}) = 29.

Некоторые из этих сумм встречаются более одного раза, другие - уникальны. Пусть U(A,k) - множество уникальных сумм k-элементных подмножеств A. В нашем примере, U(B,3) = {10,12,14,18,21,25,27,29} а sum(U(B,3)) = 156. Теперь, рассмотрим 100-элементное множество S = {1.