В программировании микроконтроллеров часто возникает задача найти угол между векторами.
Это всяческие встраиваемые системы, где есть подвижные, вращающиеся детали: PTZ камеры, поворотные платформы для радаров, турели, ветрогенераторы, солнечные панели, SDR обработка и прочее.
В данном тексте я приведу простое и понятное решение задачи вычисления угла между векторами на языке программирования Си.
Занимательные задачки
Разминаем мозги
Новости
Погодозависимый график систем отопления в домах и график теплоснабжения от ТЭЦ. Причины весенних перетопов в домах
Как поддерживается постоянство температуры в помещении при радиаторном отоплении?
Для поддержания постоянной температуры в наших домах зимой требуется регулировать мощность отопления в домах и квартирах при изменении температуры на улице.
Достигается это применением так называемого «погодозависимого графика теплоснабжения».
Так известно, что потери тепла через наружные стены и окна линейно зависят от перепада температуры между улицей и помещением.
То есть чем больше перепад температуры с улицей, тем больше тепла нужно подавать в помещение для компенсации этих теплопотерь.
Для водяных радиаторных систем отопления этот «погодозависимый график теплоснабжения» выражается в линейном графике температуры подаваемой в радиаторы воды от температуры на улице (см.рис.1.)
Такой график поддерживается в системе водяного отопления с помощью специальных систем автоматического регулирования, которые располагаются в котельной частного дома в ИЖС, в ИТП отдельного многоквартирного дома или в ЦТП городского микрорайона.
Об одной изящной задаче
Хабр, привет! В этой статье хочу поделиться с вами одной изящной задачей из нашего прошедшего квеста, которая мне очень понравилась и, как мне кажется, заслуживает вашего внимания.
Имеется функция magic()
, принимающая три целочисленных аргумента, в теле которой определены константы a, b, c
, являющиеся натуральными числами. Требуется определить значения констант a, b
и c
за минимальное количество вызовов данной функции.
Java Тренажер
Хочу представить вашему вниманию бесплатный курс Java Тренажер, который недавно опубликовал на платформе Stepik.
Java — это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (позднее приобретённой компанией Oracle). Он был выпущен в 1995 году и с тех пор стал одним из наиболее популярных языков программирования благодаря своей платформенной независимости, простоте использования, масштабируемости и широкому спектру применения.
Истории
История одной очереди
В одно воскресенье довелось мне стоять в очереди на избирательный участок №8134 в Алматы. Простоял я там 4 часа, а некоторые и того больше. И как-то совершенно случайно вспомнил, что в институте я учился на специальности “системы и сети массового обслуживания”, а тут у нас как раз такая сеть, которую можно попробовать рассчитать. А заодно ответить расчётами на некоторые вопросы.
Реальность обладает поразительным числом деталей
Мой отец эмигрировал из Колумбии в Северную Америку, когда ему было 18. Сделал он это в поисках лучшей жизни. Для меня и моего брата это значило — проводить много времени на уличном холоде. Отец выбрал путь улучшения своей судьбы через улучшение того, что его окружает. Меня и брата «добровольно» завербовали в помощники по работам над принадлежащими нам постройками.
Именно так значительную часть подростковых лет я провёл, чиня изгороди, роя ямы, строя перекрытия и навесы. И если я чему и научился, занимаясь всеми этими строительными делами, так это тому, что реальность обладает удивительным количеством деталей.
Вызовы автоматизации: NFC-метки на металлической поверхности
О самой технологии NFC (Near Field Communication) написано множество статей, в том числе и здесь на Хабре. Активно данная технология находит применение в промышленности. В частности, компанией «Сибур», ведущим игроком в области нефтехимической промышленности, в целях повышения эффективности и для обеспечения контроля и автоматизированного сбора информации внедрены тысячи защищенных NFC-меток. «Защищенность» подразумевает наличие сертификата по соответствующему классу взрывозащиты. Вообще на объектах такого уровня все устройства должны быть взрывозащищенными, так как их применение предполагается во взрывоопасных средах.
Мем, ставший легендой: Doom можно запустить на чем угодно
Фанаты ретро-игр не дают умирать любимым играм, делая модификации или портируя их на современные версии консолей и ПО. И особняком здесь стоит культовая игра Doom 1993 года, которую стали запускать не только на ПК и консолях, а на любых устройствах, у которых есть экран и процессор. И это стало своего рода мемом. Игра, созданная на движке id Tech 1, была разработана так, что для игры требовались лишь самые скромные настройки.
С течением времени после выхода Doom развивались многие технологии. В 2007 году началась революция, когда Apple выпустила свой первый iPhone, и вскоре дисплеи стали неотъемлемой частью XXI века, интегрируясь во всё больше и больше продуктов и повседневных инструментов: холодильники, тостеры, кассовые аппараты, автомобили, электронные сигареты и даже тесты на беременность. Вместе с этим появилась возможность запустить Doom на всех этих устройствах. Таким образом, родилась концепция «Doom running on everything» (DROE), породившая культуру, в которой в Doom играли на банкоматах, калькуляторах, кубиках LEGO, картофеле и даже на вышеупомянутых тестах на беременность.
Doom, конечно, не будет работать наилучшим образом, скажем, на светодиодном рекламном щите или консоли Playdate, но это не имеет значения. В рамках культуры DROE, просто отображение игры на экране определённого устройства считается успехом.
Будем ждать ещё больше историй о том, как энтузиасты запускают Doom при помощи подручных вещей, чтобы расправиться с демонами ада. А пока здесь собраны некоторые удивительные примеры того, как легендарную Doom запускают на различных устройствах.
Мем, ставший легендой: Doom можно запустить на чем угодно
Фанаты ретро-игр не дают умирать любимым играм, делая модификации или портируя их на современные версии консолей и ПО. И особняком здесь стоит культовая игра Doom 1993 года, которую стали запускать не только на ПК и консолях, а на любых устройствах, у которых есть экран и процессор. И это стало своего рода мемом. Игра, созданная на движке id Tech 1, была разработана так, что для игры требовались лишь самые скромные настройки.
С течением времени после выхода Doom развивались многие технологии. В 2007 году началась революция, когда Apple выпустила свой первый iPhone, и вскоре дисплеи стали неотъемлемой частью XXI века, интегрируясь во всё больше и больше продуктов и повседневных инструментов: холодильники, тостеры, кассовые аппараты, автомобили, электронные сигареты и даже тесты на беременность. Вместе с этим появилась возможность запустить Doom на всех этих устройствах. Таким образом, родилась концепция «Doom running on everything» (DROE), породившая культуру, в которой в Doom играли на банкоматах, калькуляторах, кубиках LEGO, картофеле и даже на вышеупомянутых тестах на беременность.
Doom, конечно, не будет работать наилучшим образом, скажем, на светодиодном рекламном щите или консоли Playdate, но это не имеет значения. В рамках культуры DROE, просто отображение игры на экране определённого устройства считается успехом.
Будем ждать ещё больше историй о том, как энтузиасты запускают Doom при помощи подручных вещей, чтобы расправиться с демонами ада. А пока здесь собраны некоторые удивительные примеры того, как легендарную Doom запускают на различных устройствах.
«Физика для программистов» — как физтехи применяют её в приложениях. Бросок объекта под углом к горизонту
Данная статья входит в цикл, освещающий задачи на моделирование физических процессов на факультете МТФИ ВШПИ. Мы написали приложение на Flutter и сайт на React для моделирования броска, расскажем о нашем опыте в этой статье.
Получаем деньги за подбрасывание монет стоимостью в миллионы долларов
Безотказный способ вовлечь людей в дискуссию – регулярно публиковать эту штуку в Twitter. Иногда я ненавижу подобные скрупулёзные разборы тем, но в данном случае, к чёрту, давайте разберём эту хреновину по косточкам, и посмотрим, сколько полезной информации мы можем из неё извлечь.
Начнём с очевидного.
Ожидаемая стоимость при выборе зелёной кнопки цвета составляет $25 млн.
Многие люди выберут красный. Некоторые из этих людей знают, что ожидаемая стоимость зелёного цвета составляет $25 млн, и всё равно выбирают красный.
Сосульки на свесах скатной кровли: механизм образования и методы борьбы с ними
Островерхая скатная и плоская крыша дома в ИЖС: Битва архаично-романтичного «дизайна» с инженерной рациональностью.
Крыша дома в частном секторе- это не только инженерное сооружение, но и главный элемент внешнего вида здания в целом.
Если учесть, что частный дом в значительной степени строят ради «показать себя», то его крыша становится скорее ярмаркой тщеславия, чем ответственной инженерной конструкцией. (см.рис.1.)
Новый рекорд производительности FizzBuzz
283 ГБ/с на AMD Ryzen 9 7700X.
Сборка (протестирована с GCC 13):
g++ fizzbuzz.cc -march=native -o fizzbuzz -O3 -Wall -std=c++20 -fno-tree-vectorize -fno-exceptions
На сборку уходит несколько минут. В зависимости от CPU можно добиться повышенной производительности с -fno-tree-vectorize
или без этого ключа.
Ближайшие события
Ваш телефон – секретное оружие: Как превратить его в веб-камеру и оживить ваши онлайн-встречи! (Если у вас Linux)
Что объединяет удаленного сотрудника, на долю которого выпало много видеозвонков, зарождающуюся звезду YouTube и начинающего стримера? Все они, рано или поздно, осознают неотъемлемую важность повышения качества изображения, которое предоставляется их зрителям. А еще у них наверняка есть какой-нибудь Xiaomi Nano Porridge 10 Pro с довольно неплохой матрицей. И я не исключение, бросив вызов этой проблеме по-программистски и постаравшись обойтись без больших финансовых затрат, решением которой и хочу поделиться с вами. Добро пожаловать под кат!
Оптическое распознавание символов и разбор чеков Rimi
Некоторое время назад в нашей стране крупные сети магазинов стали вводить электронные чеки. В частности, магазины сети Rimi. Эти чеки покупатель получает по почте в виде PDF документа. У меня скопилось много таких чеков, и мне стало интересно посмотреть на разного рода статистику: например, на цены на различные товары в разное время, сколько чего было приобретено и т. п.
К сожалению, PDF документы, которые покупатели получают – это картинка. Получить интересующую меня информацию из них без оптического распознавания символов (OCR) невозможно. Однако, OCR, как оказалось, не на столько хорош, чтоб идеально справиться и точно всё распознать с первого раза. И это несмотря на то, что чеки достаточно хорошего качества: строки ровные, нет никаких артефактов в виде тёмных пятен, буквы достаточно одинаковые (правда присутствуют несколько разных шрифтов).
Обнаружены шахматы для DOS… 1980 года
Шахматы для DOS... 1980 года! Вытащены с найденной в 2024 году системной дискеты 86-DOS (QDOS), при этом без особых проблем работают в MS-DOS 2.11, 3.31 на 86Box, MS-DOS Player, FreeDOS, DOSBox-X, NTVDM на современных ОС.
С новым годом: GPT в 500 строках на SQL
В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.
Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:
«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»
Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.
Давайте же воодушевимся этим оптимистическим планом и реализуем большую языковую модель на языке SQL.
Мат (часть 8)
Что самое главное в шахматах? Конечно МАТ! Именно умение ставить его, искать в любой ситуации путь к мату – определяет способность выигрывать. Если игрок не умеет ставить простейшие маты, не видит их – он просто не сможет выиграть шахматную партию. А еще - у матов есть различные названия. И об этом я тоже хочу рассказать. Так что - запасаемся терпением, берем мышку в руки чтобы решать задачи и добро пожаловать во вселенную мата!
А забегая вперед - самое смешное название у мата — «Слепые поросята»... Но об этом уже в статье.
Закон больших чисел и закон больших грабель
Бросание монеты - дело не хитрое да и оборудование для экспериментов не очень дорогое. Бросай себе и бросай. Этот простой эксперимент дает неожиданно много следствий, многие из которых не очевидны, а порой и контринтуитивны.
Моя интуиция с завидным постоянством подсказывает мне неверное решение поэтому я собрал замечательную коллекцию грабель на которые я наступал и хотел бы ее показать публике. Я не буду использовать формул и законы больших чисел, эти столпы теорвера нам не понадобятся. Обойдемся только граблями их будет много и разных.
Новогоднее загляденье: разглядываем праздничный виммельбух с Хабраслизнем
Слизень отдохнул от поисков Деда Мороза, заполнив новогоднее бинго с работниками Фабрики подарков — и его осенила гениальная мысль! Может, пропавший Мороз скрывается в квартире одного из своих сотрудников? Или у кого-то из них хотя бы есть информация о том, куда пропал главный даритель подарков.
Слизень отправился в поквартирный обход: сперва просто не было никаких результатов. Нередко его путали с доставщиком, привезшим всё необходимое для новогоднего банкета. Но в одной из квартир его ждало удивительное зрелище. Хотите узнать, какое? Заходите под кат.
Вклад авторов
OsipovRoman 842.8samsergey 689.0NWOcs 627.0alizar 621.5itmo 610.0haqreu 577.0AKlimenkov 563.0Kelbon 457.0sannikovdmitry 329.0