В предыдущих записях блога мы обсудили, как эффективно генерировать ходы и представлять шашечную доску в Golang. Теперь мы углубимся в сердце нашей игры в шашки: ИИ, который принимает решения. ИИ будет использовать алгоритм Minimax с Alpha-Beta отсечением, популярный метод принятия решений в настольных играх.
Пользователь
Свой VPN сервер дома
Последнее время вижу очень много статей на тему vds с впн для тех или иных задач.
В основном людям нужен такой сервер для обычного неторопливого серфинга.
В связи с тем что сервер за пределами РФ стало получить сложнее и дороже решил поделиться этим способом. Он подойдет если у вас есть возможность создать виртуалку дома или рф хостинг который заметно дешевле зарубежного.
Моделирование большого количества взаимодействующих друг с другом частиц
Для простоты, будем рассматривать 2D случай, частицы круглые, радиус частиц у всех одинаковый.
Содержание
1. Обзор алгоритмов
1.1. Полный перебор
1.2. Sweep & Prune
1.3. Регулярная сеть
2. Некоторые оптимизации
2.1. Sweep & Prune
2.2. Регулярная сеть
3. Сравнение скорости выполнения
4. Приложение (программа и исходный код)
5. Заключение
Неожиданная эффективность условных вероятностей

В последнее время я решил заняться задачами по теории вероятностей, потому что мне кажется, получение знаний в этой сфере принесёт большую пользу. Я нашёл ключ, часто использующийся для решения многих из них: накладываем условие на промежуточное состояние, а затем отдельно вычисляем значение этого промежуточного состояния. Это превращает очень сложные задачи в такие, где решение практически очевидно. [Однако в таком случае мы иногда обмениваем эффективность на простоту.]
Такой подход был полезен для решения задачи о днях рождения в очереди, и в статье я приведу ещё три примера, в которых это проявляется. Если задача покажется вам неинтересной, перейдите к следующей, они все разные.
VPN Gate, или — неубиваемая Великим Китайским Файрволом распределённая сеть VPN

Сегодня речь пойдёт о технологии распределённой сети VPN Gate, своего рода недруга Поднебесной в области интернет цензуры. На Хабре много статей на тему SoftEther VPN (нижележащий слой VPN Gate), но нет ни одной технически всесторонней статьи про саму распределённую сеть и такое чувство, что в рунете про неё вообще забыли.
VPN Gate — академический эксперимент Дайу Нобори. Проект представляет собой интернет-сервис научных исследований в Высшей Школе Университета Цукуба, Япония. Цель данного исследования заключается в расширении знаний «Глобальных распределенных открытых ретрансляторов VPN».
Отличительной особенностью данной сети является её функционирование в виде роя. То есть каждый желающий пользователь может поделиться своей пропускной способностью с другими. Я знаю, что вы подумали, очередной неудачный dVPN пиар на основе блокчейна.
Однако это не так, данный проект уже насчитывает 8634 узлов и 534 петабайта трафика за всё время существования. К примеру даже у TOR-а узлов — 7 тысяч.
Взгляд программиста на гипотезу Коллатца

Формулировка такая: вам даётся натуральное число. Если оно чётное, вы его делите на два, а если нечётное, умножаете на три и добавляете единицу. И так по кругу. Гипотеза состоит в том, что для натуральных чисел иной судьбы, чем скатиться в цикл 1->4->2->1 нет. То есть, предположение состоит в том, что не появится других циклов — и тем более, таких чисел, которые при такой обработке в среднем всегда только возрастают.
Как бы на это посмотрел бы программист? Прежде всего, целое число для него это набор бит. Количество бит у числа подсчитывается логарифмом по основанию 2, с округлением в меньшую сторону, плюс единица. Семь это три бита «111», восемь это уже четыре бита «1000». Двоичная система счисления — как будто у вас отобрали все цифры с 2 по 9, а числа обозначать надо. Сперва трудно, но привыкнуть можно.
Деление в этой системе на два — это сдвиг всей расстановки в правую сторону. Но проще это назвать стиранием последнего нолика.
В цикле обработки числа именно это и происходит — если число чётное, то есть, последний бит нолик, то он стирается. Если не цепляться за отдельные циклы обработки, можно сказать, стираются сразу все завершающие нули.
Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 7

На прошлом уроке мы изучили некоторые способы поиска областей интереса на изображении. Напомню, что мы делали:
• пытались найти по цвету (чаще всего так делать не надо);
• пытались найти круглый знак посредством функции HoughCircles (иногда работает);
• а еще мы изучили морфологические операции (открытие закрытие).
Сегодняшний урок будет более глубоко посвящен работе с контурами, так как часто контур помогает выдели фичи на изображения, а так же области интересов (благодаря контуру, мы можем охватить форму объекта).
Для начала вспомним, как находить контуры.
Применение научного подхода при решении задач в Data Science

Привет! Меня зовут Евгений Мокшин, я занимаюсь аналитикой и машинным обучением в ПГК. Хочу рассказать, как можно применять научный подход при решении рабочих DS-задач.
В большинстве статей, посвящённых правилам и советам по решению задач DS, рассказывается о подготовке, очистке и предварительной обработке данных, разновидностях задач и методов их решения. Из них можно узнать о том, как разработать модель, настроить гиперпараметры, выполнить перекрестные проверки. Как правило упор делается на технические аспекты. Знать и использовать все это, безусловно, важно. Однако для получения качественного результата DS-специалист также должен быть исследователем, уметь правильно ставить задачу, проводить обзор методов, выдвигать гипотезы и делать выводы. В этой статье я опишу свой взгляд на решение DS-задач и покажу, как научный подход поможет повысить его качество.
Совершенный алгоритм. Основы

Книга "Совершенный алгоритм. Основы" Тима Рафгардена первая в серии из четырёх книг примерно одинакового размера. В сумме они примерно соответствуют часто цитируемой классике "Алгоритмы. Построение и анализ".
В Data Science не нужна математика (Почти)

Привет, чемпион!
Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат.
В реальной повседневной работе Data Scientist'а я каждый день использую знания математики. Притом очень часто это далеко не «вышмат». Никакие интегралы не считаю, детерминанты матриц не ищу, а нужные хитрые формулы и алгоритмы мне оперативнее просто загуглить.
Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется. Важно прочитать до конца!
Соглашения о вызовах
Это стандартизированные методы реализации и вызова функций.
Соглашение о вызовах опредяют как функция вызывается, как функция управляет стеком и стековым кадром, как аргументы передаются в функцию, как функция возвращает значения.
17 убойных репозиториев GitHub, которые нужно сохранить

Здесь собраны лучшие и самые полезные репозитории Github, которые будут служить вам долгое время.
Трансфер технологий в условиях санкций. Опыт Холодной войны

Как сравнивать распределения. От визуализации до статистических тестов

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

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

В данной статье речь пойдёт о full reptend простых числах. Множество анимированных визуализаций и сонификации прилагаются. (Осторожно трафик)
Антипаттерны в написании учебных пособий или откуда растут ноги плохого кода?

Работа с плохим кодом лично у меня вызывает отвращение и — по правде говоря — ещё и неприличные мысли в отношении того, кто его писал. Сейчас я уверен, что кроме программистов проблему плохого написания по-настоящему не понимает никто, хотя эта проблема есть не только у нас. В этой статье я покажу это на примере учебных пособий по математике. Не в них ли рождается склонность к отвратительному коду, ведь математику проходили все?
Статья будет полезна разработчикам, которым пришло распоряжение написать документацию к ПО, а также авторам учебных пособий вузов. Я не питаю иллюзий, что ситуация как-то изменится что у первых, что у вторых, но помечтать всё же хочется.
Важно: пример из статьи не является вымыслом или шуткой!
Ещё важней: статья не является критикой математики, математику я люблю.
Как с помощью Python создать приложение для расшифровки речи в реальном времени

Научить ИИ разговаривать шёпотом — непростая задача даже сегодня. Но мы покажем, насколько простыми стали распознавание и транскрипция речи, по крайней мере, на поверхности. Интересно? Тогда добро пожаловать под кат.
Регулярные выражения (regexp) — основы

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!
Чем это лучше простого поиска? Тем, что позволяет задать шаблон.
Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.
Генерация лабиринтов: алгоритм Эллера

Привет, Хабр!
Сегодня я хотел бы рассказать о генерации идеального лабиринта - алгоритмом Эллера. Статья подойдёт всем любителям алгоритмов.
Information
- Rating
- 3,565-th
- Location
- Челябинская обл., Россия
- Registered
- Activity