
Привет! Сегодня мы продолжаем реализовывать шифрование. В этой статье мы рассмотрим алгоритм шифра "Магма", который был разработан и использовался в СССР.
User
Привет! Сегодня мы продолжаем реализовывать шифрование. В этой статье мы рассмотрим алгоритм шифра "Магма", который был разработан и использовался в СССР.
В играх часто используется паттерн упаковки булевых значений в биты. Это удобно для оптимизации памяти и ускорения выполнения массовых проверок. Например, такие проверки могут включать нахождение игрока в тайле, определение доступности клеток на четырех- или шестигранной сетке, или другие пространственные проверки, которые необходимо выполнять быстро. Это не ракетостроение, но когда профайлер показал одну из таких функций в числе горячих, мне стало интересно, как именно она работает и можно ли её оптимизировать. Структура данных bitset — это способ эффективно представлять множество целых индексов, которое к тому же поддерживает различные операции над ним, например объединение, разность, пересечение.
Итак - каждый юнит может занимать один или несколько тайлов, особенно если это большой юнит, вроде колесницы или требюшета и мы хотим создать производную карту, которая хранит другие признаки, например: есть ли в тайле юнит, или фильтр по здоровью юнитов. Такие карты используются для разных быстрых проверок, вроде такой: можно ли переместиться в точку, или каких юнитов имеет смысл атаковать.
Для представления данных мы можем использовать индекс юнита в тайле. В качестве типовой задачи проверять будем только юнитов, у которых здоровье превышает определённое значение. Это условие не взято с потолка. Например, некоторые юниты используют стратегии вроде "убей слабейшего" или "нападай стаей". Для таких стратегий поюнитный обход всех юнитов вокруг (особенно если это выполняют все юниты в группе) может стать крайне затратной по времени операцией.
Название статьи получилось как-то само собой: недалеко от моего дома есть хорошее кафе Chief&Bites, достаточно популярное у местных жителей, но пирожные там начинают делать после заказа, такой вот формат анти-кафе. Сами понимаете, прождать пока сделают свежайшее пирожное полчаса, а то и час - легко, там даже на чеке пишут время, когда начали делать именно твое пирожное. Заранее извиняюсь за возможные "велосипеды" в коде, но, возможно, эта тема покажется кому-то полезной.
IntelliJ IDEA имеет богатый функционал, однако, как и в любом другом программном обеспечении, существуют маленькие хитрости и трюки, которые могут сделать работу с этим инструментом ещё более приятной и эффективной. В этой статье мы рассмотрим несколько таких функций, которые помогут раскрыть весь потенциал IntelliJ IDEA и улучшить свой рабочий процесс.
В этом посту поговорим про различия в двух подходах моделирования, а именно, чем отличаются физически обоснованные модели от моделей, основанных на данных. На самом деле между этими двумя понятиями есть и кое-что среднее, что становится актуальнее в решение научных задач. Но об этом позже.
Итак, начнем с моделей, основанных на данных. Такого рода модели встречаются почти на каждом шагу. Любая задача машинного обучения, будь то регрессия (например, предсказание цен на товары), классификация (определение маркера болезни по данным об анализах пациента), рекомендация (определение более подходящего видео в вашей ленте), сегментация (определение объектов на фото или видео) и т. д. Задач машинного обучения достаточно много, но все они требуют одного - данных.
В этом классе моделей требуется собрать подходящий набор данных, обработать его (например, убрать различные аномалии или трансформировать переменные), определиться с типом задачи, выбрать модель для этого типа задачи и подать данные на вход. И, наконец, обучить модель, подбирая оптимальным образом весовые коэффициенты.
Модели, основанные на данных, по факту являются статистическими моделями, которые наилучшим образом аппроксимируют неизвестную зависимость. Во многих задачах неизвестны закономерности между независимыми переменными и результирующим признаком или признаками. Они либо сложны для описания, либо у нас нет четкой формулы для получения ответа. Именно здесь такие статистические модели приходят на помощь.
Что общего между стиральной машиной, CPU и микросервисами? Все они выигрывают от «конвейеризации» (англ. pipelining).
В этой статье мы соберем информацию из разных сфер, и увидим, насколько универсален принцип конвейеризации. Получим интуитивное понимание терминов «задержка» (англ. latency) и «пропускная способность» (англ. throughput). А также научимся увеличивать пропускную способность в своих бизнес-процессах, компьютерных системах, и просто в повседневной жизни.
Представьте, что вы получили заказ на разметку датасета из 1,000 изображений. Вы берете 20 картинок из сета, проводите тесты и получаете примерную стоимость 1 изображения. В итоге вы оцениваете проект, основываясь на количестве изображений, и устанавливаете цену за каждое. Однако, когда данные приходят, оказывается, что на каждом изображении не один объект к разметке, как было на тестах, а десятки! В итоге вы тратите гораздо больше времени и средств, чем планировали в начале.
Как избежать таких распространенных ошибок и защитить свой бизнес от неожиданных затрат и задержек? Давайте обсудим, какие ошибки чаще всего возникают при оценке проектов по сбору и разметке данных для машинного обучения, и на что важно обращать внимание, чтобы гарантировать корректную оценку ваших проектов. Узнайте больше в статье Романа Фёдорова, эксперта в области подготовки датасетов для машинного обучения.
Создание доступной портативной фундус-камеры
Добрый день. Меня зовут Александр Тимохин. Учусь в НИУ ВШЭ, работаю физиком. В этой статье я расскажу, чем занимался на стажировке в Сбере в центре медицины лаборатории ИИ, в ходе которой была предпринята попытка разработки дешевой и портативной фундус‑камеры для индивидуального применения.
После долгого перерыва мы возвращаемся в мир криптографических алгоритмов. В этот раз мы рассмотрим некоторые широко известные режимы шифрования блочных шифров, такие как ECB, CBC, CFB, OFB, CTR и подготовим небольшую архитектурную задумку, о которой я расскажу под катом.
Если вы еще не видели мои предыдущие статьи по алгоритмам хэширования "Streebog" и "SHA", советую ознакомиться — в этот раз будет сложнее.
Что такое идеальный "квант информации" или "минимальная единица смысла" и зачем задаваться этим вопросом? С этим связано много боли, часто даже не осознаваемой. Мы предлагаем решение, но сначала нужно разобраться для чего это нужно. Рекомендуем ознакомиться с первой статьёй в серии.
Туннели IPv6 через IPv4 помогают получить доступ к сайтам и сервисам, которые используют новый протокол IPv6, даже если у вас старый IP‑адрес версии 4 (IPv4). Чтобы его настроить, нужно зарегистрироваться на сайте провайдера, который предоставляет такую услугу (его еще называют туннельный брокер), и использует технологию 6in4. После регистрации вы получите все необходимые данные для подключения.
Одно из преимуществ данного способа заключается в том, что не потребуется настраивать что-то дополнительно на других устройствах в локальной сети, не сломается работа на AndroidTV итд.
Туннель работает только с белым IP‑адресом (некоторые провайдеры выдают его бесплатно, некоторые за определённую сумму в месяц).
Научим xv6 работать с виртуальными страницами размера 2 Мб, узнаем, как компоновщик создает образ памяти программы и научим файловую систему xv6 справляться с большими файлами.
Пример: Пусть программа занимает 4 Мб памяти. Размер страницы - 4 Кб. Программа займет (1024 * 1024 * 4) / (1024 * 4) = 1024
страницы памяти. ОС избавит процессор от лишней работы, если увеличит размер страницы до 2 Мб - тогда программа займет 2 страницы.
Прошло так много времени с прошлой статьи, прошу прощения, что заставил вас ждать. Выпускной курс забирал слишком много времени и не было возможности написать столь серьезный материал.
Итак, начинаем. Сначала кратко расскажу о материале в этой статье. Для разогрева поговорим о скоупе и о том, для чего он вообще нужен, далее перейдем к контексту, там я попробую объяснить сложное на пальцах, и, наконец, затронем к Continuation.
Алгоритм был предложен Эндрю Витерби в 1967 году для декодирования сигналов с кодировкой, используемой в системах связи.
Алгоритм Витерби предназначен для поиска наиболее вероятной последовательности скрытых состояний в моделях с наблюдаемыми переменными, таких как скрытые марковские модели. Основное применение заключается в декодировании, где нужно определить скрытую последовательность состояний, вызвавших наблюдаемую последовательность событий.
Квантовый компьютер — очень странное устройство, в основе которого лежит совершенно не укладывающаяся в голове многих людей абстрактная идея суперпозиции. И именно это делает такие устройства многократно более чувствительными к квантовым ошибкам, возникающим по разным причинам. Их исправление очень важно для создания практических квантовых компьютеров, которые смогут выполнять полезные вычисления. В противном случае ошибки быстро разрушат хрупкую квантовую информацию. Как же наука сегодня предлагает решать эту проблему?
Привет, меня зовут Алексей, занимаюсь популяризацией квантовых технологий, венчурными инвестициями, ищу решения практических бизнес-задач с помощью передовых технологий и оцениваю доходность перспективных проектов.
Привет! Меня зовут Настя Ищенко, я — iOS-разработчик в KTS.
Эта статья поможет узнать, что такое макросы и как они работают, а также понять, стоит ли добавлять их в свой проект.
Привет, Хабр! Меня зовут Павел Криницин. Я работаю на крупном металлургическом предприятии по производству и переработке алюминиевой продукции, где слежу за работой оборудования. В этой статье я расскажу, как мы исследовали способы раннего диагностирования повреждений конвейерных лент с применением компьютерного зрения. Эта статья будет полезна широкому кругу специалистов, занятых в различных областях промышленности, где применяют конвейерные транспортные системы. Описанные в статье подходы делают диагностику оборудования и поиск дефектов более точными, а планирование ремонтных работ — более эффективным.
Ультраметрический сосед
В квантовых масштабах наш мир начинает меняться. Он начинает соприкасаться с ультраметрическим пространством, которым он насквозь пронизан. В микромире деградирует монолитное, цельное пространство с непрерывной метрикой, и достаточно гладкими (регулярными) законами. В наше пространство начинают врываться потоки энергий, реализуясь в виде виртуальных частиц, которые поставляются ультраметрическим пространством. В этом смысле ультраметрическое пространство напрямую олицетворяет вакуум Дирака. При рассмотрении “планковских” масштабов теряется возможности нормально «работать» как с малыми областями пространства, так и с микро объектами подобных размеров в силу их не детерминировости и неопределенности (отсутствуют свойства привычного пространства, позволяющие фиксировать координаты этого объекта). На этих масштабах работает принцип Гейзенберга. Обычно этот принцип объясняют тем, что вмешательство прибора измерения, существенно влияет на сам измеряемый процесс, поэтому нельзя одновременно выяснить координаты элементарных частиц и их скорости(точнее импульсы). На дело не в точности и грубости приборов измерения, как принято говорить сейчас. Теряются метрики и смысл измеряемых параметров. Области пространства превращаются в сети с квантами пространства в качестве узлов и связывающими их петлями силовых линий. Что более существенно меняется геометрия и тем более топология пространства. Областями-дырками испещрено все наше пространство, наш мир всюду разрывной в каждой своей «планковской» области. Образно эта картина представляется в виде композиции пограничных слоёв, разделяющим пространство нашего мира с архимедовой метрикой и ультраметрическое пространство с не архимедовой метрикой. «Планковские» масштабы - это области квантовых явлений, спиновых сетей с квантами пространства в узлах, и процессами , идущих в ультраметрическом пространстве и управляющими поведением квантовых явлений, в том числе появлением квантовых флуктуаций и виртуальных частиц в нашем мире.