Как стать автором
Обновить
-7
@StarCuriosityread⁠-⁠only

Пользователь

Отправить сообщение

Сказ царя Салтана о потенциале лапласиана

Время на прочтение9 мин
Количество просмотров45K
«Три девицы под окном пряли поздно вечерком.»

image

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

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

Вскоре «в светлицу вошел царь — стороны той государь» (показан на рисунке). «Во все время разговора...», — ну понятно в общем.
«Собираем лайки нежности — формируем матрицу смежности», — бодро срифмовал он.
Девицы-красавицы с именами Алена, Варвара и Софья засмущались, но лайки (из балалайки) передали.

Вот что там было:
  • Алена получила 1 лайк от Софьи и 2 лайка от Варвары.
  • Варвара получила по лайку от Алены и Софьи.
  • А Софья получила 2 лайка от Алены и 1 от Варвары.

Царь взял лайки, покрутил гайки, постучал по колесам, пошмыгал носом, причмокнул губами, поскрипел зубами, сгонял в палаты и объявил результаты.

Наибольший вес лайков (7 баллов) получила Софья, но титул «мисс Салтан» достался Алене (15 баллов).

Подробнее о матрице лайков
Для матрицы


вектор потенциалов равен (5, 4, 7), а вектор потоков — (15, 12, 14).

После объявления результатов девицы бросились обратились к царю с просьбой рассказать,- откуда взялись эти странные цифры?
Действительно - откуда?

Генерация и визуализация многомерных данных с R

Время на прочтение4 мин
Количество просмотров14K
Возможность генерировать данные с заданной корреляцией очень важна для моделирования. В R ожидаемо обширный набор инструментов — пакетов и функций для генерации и визуализации данных из многомерных распределений. Базовая функция для генерации многомерных нормально распределенных данных — mvrnorm() из пакета MASS, части R, хотя пакет mvtnorm также предлагает функции для симуляции и многомерного нормального, и t-распределения.
Читать дальше →

Биржевой зодиак: Какие алгоритмы и инструменты применяются для прогнозирования движения цен акций

Время на прочтение7 мин
Количество просмотров24K


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

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

AlphaGo на пальцах

Время на прочтение5 мин
Количество просмотров61K
Итак, пока наши новые повелители отдыхают, давайте я попробую рассказать как работает AlphaGo. Пост подразумевает некоторое знакомство читателя с предметом — нужно знать, чем отличается Fan Hui от Lee Sedol, и поверхностно представлять, как работают нейросети.
Читать дальше →

Об одном забавном подходе к фильтрации унимодальных сигналов

Время на прочтение6 мин
Количество просмотров7.3K
В этой статье наши инженеры хотели бы поделиться с Хабром достаточно интересным инструментом, который можно эффективно применять для фильтрации зашумленных сигналов, пользуясь априорным знанием об унимодальности сигнала.

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

===> ===>
Читать дальше →

Как выглядит беспорядок или были ли у фашистов самонаводящиеся ракеты

Время на прочтение7 мин
Количество просмотров154K
13 июня 1944 года, через неделю после вторжения союзников в Нормандию, громкий жужжащий звук прогремел в небе избитого боями Лондона. Источником звука было недавно разработанное немецкое орудие войны: воздушная бомба V-1. Будучи предшественником крылатых ракет, V-1 была самоходной бомбой, управляемой с помощью гироскопов, питалась она от простого пульсирующего воздушно-реактивного двигателя, который поглощал воздух и воспламенял топливо 50 раз в секунду. Такая высокая частота пульсации давала бомбе характерный звук, зарабатывая ей прозвище «жужжащая бомба» (в оригинале – «buzz bomb» – прим. перев.).
Читать дальше →

Тихий термоядерный переворот

Время на прочтение9 мин
Количество просмотров79K
Наверное нет ни одного поля человеческой деятельности, столь полной разочарований и отвергнутых героев, как попытки создать термоядерную энергетику. Сотня концепций реакторов, десятки команд, которые последовательно становились фаворитами публики и госбюджетов, и наконец вроде определившийся в победитель в виде токамаков. И вот опять — достижения новосибирских ученых возрождают интерес по всему миру к концепции, жестоко растоптанной в 80х. А теперь подробнее.

image
Открытая ловушка ГДЛ, на которой получены впечатляющие результаты
Читать дальше →

С++ exception handling под капотом. Часть 3

Время на прочтение14 мин
Количество просмотров15K
Продолжаем перевод серии статей об обработки исключений в C++

1 часть
2 часть

C++ exceptions под капотом: поиск верного landing pad


Это уже 15-я глава в нашей длинной истории. Мы уже изучили достаточно много о том, как работают исключения, и даже имеем написанную работающую собственную персональную функцию с небольшим количеством рефлексии, определяющей где находится catch-блок (landing pad в терминах исключений). В прошлой главе мы написали персональную функцию, которая может обрабатывать исключения, но она всегда подставляет только первый landing pad (т.е. первый же catch-блок). Давайте улучшим нашу персональную функцию, добавив возможность выбирать правильный landing pad в функции с несколькими catch-блоками.
Читать дальше →

Конечное поле GF(256) и немного магии

Время на прочтение6 мин
Количество просмотров29K

Введение


Будучи студентом я посещаю занятия по криптографии. И разумеется этот курс не мог обойти вниманием стандарт AES.

При реализации данного алгоритма встает вопрос о реализации полей GF(2^8), что будет освещено в данной статье. Будут рассмотрены: битовая магия для умножения элементов поля, шаблоны для генерации таблиц замен на этапе компиляции.

Вторая часть предполагает, что читатель имеет доступ к компилятору с поддержкой C++14. Первая часть будет написана в стиле Си.
Читать дальше →

Реверс-инжиниринг «Казаков», часть вторая: увеличение очереди

Время на прочтение5 мин
Количество просмотров37K


В большинстве случаев слово «очередь» не вызывает положительных эмоций, тем более в сочетании со словом «увеличить». Но если вы любите играть с миллионами единиц ресурсов к началу игры, чтобы на десятой минуте бросить в бой тысячи солдат, то стандартного заказа по пять боевых единиц единиц с помощью клавиши Shift вам будет мало. Вот если бы можно было заказывать по 20 или по 50 солдат, или ещё лучше – иметь несколько разных клавиш-модификаторов…
...можно, если осторожно, или Одиссея длинною в 172 байта

Ленивый список в C++

Время на прочтение10 мин
Количество просмотров26K

В Scala есть интересная коллекция — Stream. Контейнер, который представляет собой список, элементы которого вычисляются (и сохраняются после этого) при первом обращении:

The class Stream implements lazy lists where elements are only evaluated when they are needed.

Мне захотелось реализовать нечто подобное на C++.
Что из этого получилось...

Реверс-инжиниринг и замедление «Казаков»

Время на прочтение5 мин
Количество просмотров62K


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

  1. Искусственно загрузить ядро процессора, на котором запущена игра
  2. Запускать игру в виртуальной машине с ограниченными ресурсами
  3. Играть не по локальной сети, а по интернету — там задержки побольше
4. Только дизассемблинг, только хардкор!

Что на самом деле может виртуальная память

Время на прочтение7 мин
Количество просмотров34K


Мы в 1cloud стараемся рассказывать о различных технологиях — например, контейнерах, SSL или флеш-памяти.

Сегодня мы продолжим тему памяти. Разработчик Роберт Элдер (Robert Elder) в своем блоге опубликовал материал с описанием возможностей виртуальной памяти, которые известны не всем инженерам. Мы представляем вашему вниманию основные мысли этой заметки.
Читать дальше →

«Hello World!» на C массивом int main[]

Время на прочтение5 мин
Количество просмотров46K
Я хотел бы рассказать о том, как я писал реализацию «Hello, World!» на C. Для подогрева сразу покажу код. Кого интересует как до этого доходил я, добро пожаловать под кат.

#include <stdio.h>
const void *ptrprintf = printf;
#pragma section(".exre", execute, read)
__declspec(allocate(".exre")) int main[] =
{
    0x646C6890, 0x20680021, 0x68726F57,
    0x2C6F6C6C, 0x48000068, 0x24448D65,
    0x15FF5002, &ptrprintf, 0xC314C483
};

Реализация

Российские светодиодные лампы Лисма

Время на прочтение3 мин
Количество просмотров48K
Саранский электроламповый завод начал производство светодиодных ламп по одной из самых современных технологий — filament (светодиодные нити).



Ко мне попали пять ламп из разных партий с мощностью 6 и 8 Вт. Они должны заменять лампы накаливания 60 и 75 Вт.
Читать дальше →

«Цифровая лаборатория» Мастер Кит

Время на прочтение4 мин
Количество просмотров12K
Компания Мастер Кит выпустила третий набор в линейке «Азбука электронщика». Этот набор называется NR05 — «Цифровая лаборатория» и посвящен изучению программируемых микроконтроллеров.



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

Как мы писали AI для Шакала, и почему у него шизофрения

Время на прочтение12 мин
Количество просмотров37K

В ситуации полной и беспросветной задницы власть в AI сразу забирали военные, и это иногда спасало партию.

Для нашего AI Шакала пришлось написать целых 4 разных AI, каждый из которых отвечал за свою задачу. А затем они собирались вместе и голосовали за то, что же делать пиратам на поле в этом ходу.

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

Давным-давно мой преподаватель профессор Сербин рассказывал байку с сыроваром из Европы. К этому обаятельному толстяку приезжали автоматизаторы и спрашивали, как он делает такой вкусный сыр. Им нужны были эвристики для температуры, густоты и так далее. Сыровар опускал палец в мягкий сыр, медленно и кайфно чертил там дугу, улыбался во всё хитрое лицо и говорил: «Ну как вы не чувствуете!».

Алгоритмизировать процесс гости так и не смогли. Так вот, разработка шла так: мы чертили дуги и хитро улыбались, а парни проигрывали нам в настольный Шакал. И мечтали, что за них отомстит AI.
Читать дальше →

Рекурентная нейронная сеть в 10 строчек кода оценила отзывы зрителей нового эпизода “Звездных войн”

Время на прочтение11 мин
Количество просмотров160K
Hello, Habr! Недавно мы получили от “Известий” заказ на проведение исследования общественного мнения по поводу фильма «Звёздные войны: Пробуждение Силы», премьера которого состоялась 17 декабря. Для этого мы решили провести анализ тональности российского сегмента Twitter по нескольким релевантным хэштегам. Результата от нас ждали всего через 3 дня (и это в самом конце года!), поэтому нам нужен был очень быстрый способ. В интернете мы нашли несколько подобных онлайн-сервисов (среди которых sentiment140 и tweet_viz), но оказалось, что они не работают с русским языком и по каким-то причинам анализируют только маленький процент твитов. Нам помог бы сервис AlchemyAPI, но ограничение в 1000 запросов в сутки нас также не устраивало. Тогда мы решили сделать свой анализатор тональности с блэк-джеком и всем остальным, создав простенькую рекурентную нейронную сеть с памятью. Результаты нашего исследования были использованы в статье “Известий”, опубликованной 3 января.



В этой статье я немного расскажу о такого рода сетях и познакомлю с парой классных инструментов для домашних экспериментов, которые позволят строить нейронные сети любой сложности в несколько строк кода даже школьникам. Добро пожаловать под кат.
Читать дальше →

Простые алгебраические типы данных

Время на прочтение12 мин
Количество просмотров36K
Это шестая статья из цикла «Теория категорий для программистов». Предыдущие статьи уже публиковались на Хабре:
0. Теория категорий для программистов: предисловие
1. Категория: суть композиции
2. Типы и функции
3. Категории, большие и малые
4. Категории Клейсли
5. Произведения и копроизведения

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

Рассмотрим подробнее место произведения и копроизведения типов в программировании.

Произведение типов


Каноническая реализация произведения типов в языках программирования — это пара. В Haskell пара является примитивным конструктором типов, а в C++ это относительно сложный шаблон из стандартной библиотеки.
Pair
Строго говоря, произведение типов не коммутативно: нельзя подставить пару типа (Int, Bool) вместо (Bool, Int), хотя они и содержат одни и те же данные. Однако произведение коммутативно с точностью до изоморфизма, задаваемого функцией swap, которая обратна самой себе:
swap :: (a, b) -> (b, a)
swap (x, y) = (y, x)

Можно рассматривать такие пары как различные форматы хранения одной и той же информации, как big endian и little endian.
Читать дальше →

Персонажи сказок Старой Руси, Эпизод II

Время на прочтение62 мин
Количество просмотров77K


Некоторое время назад на этом ресурсе была опубликована первая часть картинок из моего проекта «Сказки Старой Руси». Если вы не читали статью, я бы посоветовал сделать это, поскольку там представлена полная информация о самом проекте — как он появился на свет, и с какой целью. С тех пор произошло немало событий, я нарисовал много картинок, провел массу исследований и определился с точной формулировкой проекта: «рисовальная кабинетная мифология» в чистом виде (потому что сижу в домашнем кабинете, придумываю новую игровую мифологию и рисую). Еще раз напомню, что проект этот не для детей, но взрослым его не стоит воспринимать слишком серьезно.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность