Как стать автором
Обновить
458.03
Рейтинг

Алгоритмы *

Все об алгоритмах

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Создавая непредсказуемость. Примеры использования генераторов случайных чисел

Блог компании Издательский дом «Питер» Программирование *Разработка игр *Алгоритмы *Unity *
Перевод

Привет, Хаброжители! У нас вовсю продолжается распродажа «Старый Новый год»

Кто пытается арифметическими методами генерировать случайные числа, тот, конечно, живет во грехе. Поскольку, как указывалось уже неоднократно, нет такого феномена, как случайное число  —  есть только методы для получения случайных чисел. – Джон фон Нейман

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

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 2.2K
Комментарии 13

Новости

Мой опыт собеседования в Amazon

Алгоритмы *Amazon Web Services *C# *Распределённые системы *IT-компании

О чём эта статья

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

Это история о моем опыте собеседования в Амазоне, почему мне в целом не понравилось по сравнению с другими FAANG. Так же тут будут ответы на “а что конкретно спрашивали на интервью, какие были задачки, что на систем дизайне было”, потому что мне не дали подписать NDA, все с пруфами, скринами и прочее.

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

Начало, предложение от Amazon

В один прекрасный день 6 сентября, мне пришел такой сообщение в Линкедин.

Читать далее
Всего голосов 85: ↑82 и ↓3 +79
Просмотры 40K
Комментарии 161

Градиенты в нейронных сетях для поиска аномалий в данных

Блог компании Питерская Вышка Алгоритмы *Математика *Машинное обучение *

В основе машинного обучения лежит предположение, что данные для обучения, тестирования и применения взяты из одного и того же распределения. К сожалению, в процессе применения модели это предположение может нарушаться, что приводит к необъяснимым последствиям — сдвигу распределения. Особенно такие нарушения опасны в областях, где требуется быстро и точно принимать решения: медицина, финансы, self-driving cars. 

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

Меня зовут Глеб Енгалыч, я аспирант Питерской Вышки первого года обучения. В этом посте я расскажу о своей магистерской диссертации «Анализ градиента нейронной сети для поиска аномалий в данных», которую сейчас активно дорабатываю для подачи на конференцию ICML-2022.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 2.5K
Комментарии 3

Оптимизация генплана. Какая математика под капотом?

Блог компании Цифровое проектирование Алгоритмы *Математика *

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

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 1.9K
Комментарии 6

Роль алертов в инфообмене с маркетплейсом

Алгоритмы *Разработка под e-commerce *Управление e-commerce *Управление продажами *

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

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Просмотры 170
Комментарии 1

Адаптивное свойство одной строкой

CSS *Алгоритмы *
Из песочницы

Задача. Описать изменение значения CSS-свойства как функцию от ширины вьюпорта без использования медиа-запросов. Результатом работы миксина должна быть единственная строка вида <свойство>: <функция от ширины вьюпорта >. В качестве входных данных имеются заданные (табулированные) точки (ширина вьюпорта, значение свойства). Поведение CSS-свойства от точки к точке аппроксимируется прямой линией.

В сети достаточно много разных способов решений для частных случаев (см., например, https://habr.com/ru/post/501392/). Здесь же предлагается общее решение задачи.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 956
Комментарии 2

Сравнение матричной факторизации с трансформерами на наборе данных MovieLens с применением библиотеки pytorch-acceleratd

Блог компании Wunder Fund Python *Алгоритмы *Машинное обучение *
Перевод

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

Читать далее
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 1.8K
Комментарии 1

Как в Java устроено выделение регистров в памяти

Блог компании Издательский дом «Питер» Программирование *Java *Assembler *Алгоритмы *
Перевод

Привет, Хаброжители! Обратите внимание на большую распродажу в честь Старого Нового года.

Когда виртуальная машина Java компилирует ваш исходный код Java в машинный, одна из задач, которые она должна при этом выполнить – решить, где хранить локальные переменные Java и другие подобные временные значения. В вашей машине отсутствует концепция локальных переменных, поэтому на этапе компиляции необходимо определиться, какое место в памяти стека (какой машинный регистр) будет использоваться для хранения каждой переменной. Эта операция называется «выделение регистров». Может показаться, что выделение регистров – сложная абстрактная теоретическая тема, но в этом коротком посте я покажу, как сначала соотнести исходный код Java с теорией, потом понять, как его видит компилятор, а потом – показать результирующий машинный код. В данном случае моя цель – продемонстрировать, что все эти концепции очень легко опробовать на практике с реальным компилятором. 

Читать далее
Всего голосов 24: ↑19 и ↓5 +14
Просмотры 7.3K
Комментарии 3

Разумная слизь? Тварь, способная решать сложные задачи, что не под силу даже существам, обладающим развитым мозгом

Блог компании ITSOFT Алгоритмы *Научно-популярное

Автор Лысый Камрад (@LKamrad)

При этом у нее нет не то чтобы мозга, а хотя бы намека на самую примитивную нервную систему. Разрезанная на части, она снова сольется в единый организм, а если части разнести друг от друга, они будут функционировать как отдельные вполне полноценные особи. Такое невозможно, воскликните вы, и... будете неправы – мать-природа круче любой фантастики. 

Знакомьтесь, Physarum polycephalum  – не животное, не растение и даже не гриб...

Примечание: данную публикацию можно использовать для начала ознакомления учащихся с принципами динамического программирования.

Читать далее
Всего голосов 177: ↑167 и ↓10 +157
Просмотры 45K
Комментарии 75

Формула Бине без плавающей точки

Алгоритмы *

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

Читать далее
Всего голосов 75: ↑74 и ↓1 +73
Просмотры 8.5K
Комментарии 28

Алгоритм торговли на бирже криптовалют

Криптография *Python *Алгоритмы *Математика *
Recovery mode

В github лежит база данных каждые 10 секунд на протяжении с 5 месяцев сбора цены биткоина на одной известной бирже.

Также там лежит бэктестинг алгоритм, боевой алгоритм, и кнопки купить/продать или закрыть сделку маржинальной торговли cross кошелька.

Я выкладываю данный алгоритм так как на нем не получилось заработать - все съедает комиссия. В данный момент торгую более сильным и длинным алгоритмом.

Данные такие что за час проходит 350 тиков съема данных и торговли , так как выполняется еще механика алгоритма на 10 тиков короче час (не 360 , а 350).

Читать далее
Всего голосов 30: ↑2 и ↓28 -26
Просмотры 11K
Комментарии 36

Жизнь как граф

Алгоритмы *Математика *Читальный зал

Предлагаю обсудить философскую тему. Что если представить нашу жизнь как взвешенный ориентированный ациклический граф?

Читать далее
Всего голосов 16: ↑12 и ↓4 +8
Просмотры 7K
Комментарии 51

Big O нотация в Swift

Разработка под iOS *Алгоритмы *Swift *
Из песочницы

Данная статья поможет начинающим iOS разработчикам разобраться в производительности алгоритмов в Swift.

Обозначение Big O нотация (или просто Big O) — это способ оценки относительной производительности структуры данных или алгоритма, обычно по двум осям: времени и пространству.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 3.7K
Комментарии 18

Ещё 20+ игр, которые прокачивают логику, алгоритмы и радуют умный мозг [по следам комментариев на Habr]

Блог компании Timeweb Cloud Программирование *Алгоритмы *Научно-популярное Игры и игровые консоли
image

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

Еще я веду канал в Telegram: GameDEVils, делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Всего голосов 80: ↑79 и ↓1 +78
Просмотры 40K
Комментарии 53

Как ИИ вдохновил меня поднять свой уровень в шахматы

Алгоритмы *Искусственный интеллект Мозг Логические игры
Из песочницы

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

Читать далее
Всего голосов 13: ↑9 и ↓4 +5
Просмотры 7.1K
Комментарии 3

Как измерить количество информации?

Блог компании Образовательные проекты JetBrains Алгоритмы *Математика *Научно-популярное

Мы ежедневно работаем с информацией из разных источников и поэтому имеем интуитивные представления о том, что означает, когда один источник является более информативным, чем другой. Однако далеко не всегда понятно, как это правильно определить формально. Не всегда большое количество текста означает большое количество информации. Например, среди СМИ распространена практика, когда короткое сообщение из ленты информационного агентства переписывают в большую новость, но при этом не добавляют никакой «новой информации». Или другой пример: рассмотрим текстовый файл с романом «Война и мир» в кодировке UTF-8. Его размер — 3.2 Мб. Сколько информации содержится в этом файле? Изменится ли это количество, если файл перекодировать в другую кодировку? А если заархивировать? Сколько информации вы получите, если прочитаете этот файл? А если прочитаете его второй раз?

По мотивам открытой лекции для Computer Science центра рассказываю о том, как можно математически подойти к определению понятия "количество информации".

Читать далее
Всего голосов 35: ↑35 и ↓0 +35
Просмотры 5.1K
Комментарии 18

15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли

Блог компании Timeweb Cloud Программирование *Алгоритмы *Научно-популярное Игры и игровые консоли


Есть «Super Mario», признанная классика видео игр. Есть «Doom», который запускают на чайниках и тестах на беременность. Есть супер-популярные по статистике twitch.tv игры («League of Legends», «GTA V», «Fortnite», «Apex Legends») которые стримят пятая часть всех стриммеров.

А есть игры, на которые очень мало обзоров, но они супер крутые — игры про алгоритмы. Игры, в которых можно кодить на ретро-компьютере; игры, которые надо взламывать; игры, где можно программировать контроллеры или поведение персонажей; игры, где можно создавать свою игру внутри игры.

Под катом подборка классных игр про алгоритмы за последние 10 лет. Если что-то упустила — буду рада дополнениям.

Еще я создала канал в Telegram: GameDEVils, буду делиться там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Всего голосов 98: ↑93 и ↓5 +88
Просмотры 53K
Комментарии 96

Интерпретация моделей и диагностика сдвига данных: LIME, SHAP и Shapley Flow

Блог компании Open Data Science Алгоритмы *Машинное обучение *Статистика в IT Искусственный интеллект

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

Также поговорим о проблемах метода SHAP и его дальнейшем развитии в виде метода Shapley Flow, объединяющего интерпретацию модели и многообразия данных.

Читать далее
Всего голосов 36: ↑35 и ↓1 +34
Просмотры 2K
Комментарии 0

Как мы используем LLVM для ускорения формирования отчётов

Блог компании 1С Алгоритмы *Компиляторы *

Для бизнес-приложений очень важна возможность быстро сформировать нужный отчёт. Для этого, в частности, важно быстро получить результат запроса (часто – очень сложного запроса) к СУБД. Что не всегда просто, потому что с этой СУБД работают на чтение и запись тысячи (а иногда - десятки тысяч) пользователей.

 Чтобы не нагружать рабочую СУБД запросами для отчетов мы разработали механизм копий баз данных, копирующий данные (все или их часть) из рабочей БД в отдельную БД для отчетности. Пользователи могут строить отчеты на «отчетной» БД, быстрее получая результат и не нагружая рабочую базу.

 Для дальнейшего ускорения формирования отчетности мы разработали Дата акселератор — собственную SQL-совместимую in-memory базу данных, ориентированную на максимальную производительность в задачах OLAP. Дата акселератор может использоваться в качестве «отчетной БД» и позволяет существенно (иногда – на порядки) ускорить формирование отчетов.

Читать далее
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 4.7K
Комментарии 13

Вклад авторов