
Всем привет!
Небольшая статья о нахождении оптимального маршрута
Software Engineer
Привет, Хабр! В данной статье мы рассматриваем гипотезу Колатца, которая заключается в следующем. Если мы возьмём произвольное число, то нам нужно посмотреть на то, чётное ли оно. Если чётное, то делим на два, если не чётное, то умножаем на 3 и прибавляем 1. Потом с получившимся числом делаем тоже самое. Например возьмём 5. 5 нечётное, значит умножаем на 3 и прибавляем 1. Получаем 16. 16 чётное, значит делим на 2, получаем 8. И так далее. 16->8->4->2->1. А дальше следующее 1->4->2->1->4… . Получаем цикл. Гипотеза Колатца заключается в том, что любое число после некоторого конечного числа операций, превратится в 1, то-есть войдёт в этот цикл. По сути гипотеза неверна в двух случаях, если есть другой цикл, кроме, 1->4->2->1. Или же существует число, которое бесконечно растёт. В данной статье рассказывается об доказательстве гипотезы.
Статья для тех, кто хочет познакомиться с устройством технологии WebSocket или языком программирования Go.
Или узнать с какой простотой Go стал одним из самых популярных языков программирования для написания сетевых приложений.
Google проложит первый подводный сетевой кабель между Азией и Канадой. Кабель Topaz пройдет от Порт-Алберни на западном побережье острова Ванкувер через Тихий океан к Миэ и Ибараки в Японии. Ожидается, что проект завершится в 2023 году.
unlock
, потому что им кажется, что это более явное действие.Mutex<()>
и разные хитрости, чтобы его имитировать.Mutex
неразрывно связаны друг с другом, а также с гарантиями безопасности Rust в целом — изменение одного из них или обоих откроет возможности для возникновения незаметных багов и повреждений из-за гонок данных.lock
и unlock
было бы опрометчивым в Rust, потому что это позволяет безопасному коду легко вносить ошибки, нарушающие безопасность памяти и вызывающие гонки данных.Одна из активно реквестируемых фич в JavaScript и TypeScript — перегрузка операторов. Без инфиксной записи, к примеру, получаются очень громоздкими вычисления с векторами или множествами. Тем не менее, используя сильное колдунство некоторые знания о том, как сейчас работают операторы в JavaScript, мы можем реализовать все самостоятельно.
Привет! Я хочу рассказать вам о рекомендательных алгоритмах. Мы в Prequel создаем фильтры и эффекты для редактирования фото и видео. Создаем давно, и постепенно этих эффектов стало очень много. А с ними и пользовательского контента. Мы захотели помочь с выбором из этого многообразия, для чего нам и понадобилась система рекомендаций. Если масштабы вашей системы такие, что пользователям сложно в ней ориентироваться, возможно, что рекомендации могут помочь и вам.
Задуманный систем оказался слишком объемным для одной статьи, поэтому мы разбили его на две части. Перед вами первая, она посвящена постановке задачи и базовым методам решения. В этой части мы разберем коллаборативные модели от матричного разложения (на примере ALS) до neural collaborative filtering. Кроме того, будет небольшой обзор метрик и техник борьбы с проблемой холодного старта.
Множество (Set) — структура данных, которая позволяет достаточно быстро (в зависимости от реализации) применить операции add
, erase
и is_in_set
. Но иногда этого не достаточно: например, невозможно перебрать все элементы в порядке возрастания, получить следующий / предыдущий по величине или быстро узнать, сколько элементов меньше данного есть в множестве. В таких случаях приходится использовать Упорядоченное множество (ordered_set). О том, как оно работает, и какие реализации есть для питона — далее.
Данная статья преследует цель рассказать о новом походе к авторизации в облачных решениях, в основе которого лежит использование интерпретируемого языка определения политики управления доступом — который называется языком моделирования PERM (PML). Данный язык можно использовать для выражения различных моделей управления доступом, таких как список управления доступом (ACL), управление доступом на основе ролей (RBAC), управление доступом на основе атрибутов (ABAC) и других. А также рассказать о практическом воплощении этого подхода в виде конкретной реализации кросс-языковой библиотеки авторизации Casbin
Тайлы - пожалуй один из самых удобных способов построения игровой логики. Все происходит максимально дискретно, никаких тебе физик с просчетом коллизий и прочими трудностями.
Огромное множество игр на самом деле содержат тайлы - так просто проще представлять игровой мир. Такая упорядоченность помогает геймдизайнерам строить игровые механики, упрощает жизнь художников и делает код программистов понятнее. Самих видов тайлов тоже огромное количество - сегодня поговорим о прямоугольных и изометрических.