Обновить
4
0

Пользователь

Отправить сообщение

Как первокурсник определение Коши сократил

Время на прочтение2 мин
Количество просмотров78K
image
Под катом я расскажу Вам маленькую и отнюдь не шокирующую историю, большинство из вас, наверное, скажет что я надумал хоть какую-то важность этого события и что все нижеописанное является очевидным, но для меня это было маленькой победой. Если все же интересно, добро пожаловать.

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

Все началось с первого в моей жизни коллоквиума по дисциплине Математический анализ, одно из заданий которого содержало определение не фундаментальной последовательности по Коши. Под катом трафик.
Читать дальше →

Математическая головоломка из университетского квеста

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.1K

Mr. Game & Watch — одна из интересных головоломок игры Puzzle Hunt Мельбурнского университета 2011 года. Эта игра представляет собой ежегодный квест, цель которого — первыми обнаружить «сокровища», спрятанные где‑то на территории кампуса. Задания игры не содержат инструкций. Вместо этого участникам дается сюжет, который постепенно развивается, и в который встраиваются головоломки.

Головоломка представляет собой большое количество однотипных часов: всего их 24, и они аккуратно расположены на странице в 6 рядов и 4 столбца. На всех часах можно видеть циферблат с 12 римскими цифрами; расположение часовой стрелки и минутной стрелки; время суток (AM или PM); а также угол в градусах, который представляет собой разность между положением стрелок...

Читать далее

Алфавитная идеология и буквенный символизм

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.4K

Мне попался в руки тематический выпуск «Социолингвистика правописания» (2015) журнала Written Language and Literacy. Проблемы политизации орфографии хорошо знакомы на постсоветском пространстве — Таллин или Таллинн (а в 1930 он и вовсе был Талин!), Чимкент или Шымкент? — но аналогичные противостояния возникали по всему миру, во все времена. Интереснее всего, когда политизированные прения возникают по поводу состава алфавита.

Так, испанцы, владевшие Филиппинами с 1521, перевели тагальский — основной язык Филиппин — на латиницу без использования ⟨k⟩: как и в испанской орфографии, звук [k] обозначался при помощи ⟨c⟩ или ⟨qu⟩. В 1892 филиппинские революционеры назвали свою подпольную организацию KKK (Kataastaasang Kagalang-galang na Katipunan, «высочайшая и самая почётная организация»): символом борьбы против испанской власти они избрали тройную «анти-испанскую» букву. В 1898 в войну за независимость Филиппин включились США, испанцы были разгромлены, филиппинский флаг украсился буквами KKK, а орфография повстанцев стала официальной: алфавит (abakada) принял вид ⟨a, b, k, d, e…⟩ — тогда как «колониальные» буквы ⟨c⟩ и ⟨q⟩ из него были исключены. В 1987, когда антиколониальная борьба осталась далеко позади, филиппинский алфавит вновь гармонизировали с испанским: поставили ⟨k⟩ на привычное место перед ⟨l⟩, и разрешили использовать ⟨c, f, j, ñ, q, v, x, z⟩ в собственных именах и заимствованиях.

Читать далее

std::vector: от основ до тонкостей реализации

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров4.7K

std::vector — это, пожалуй, самый используемый контейнер STL. Он кажется простым на первый взгляд: динамический массив с автоматическим управлением памятью. Но под капотом скрывается множество тонкостей, знание которых отличает начинающего программиста от профессионала.

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

Читать далее

Парадокс, положивший начало научным вычислениям

Время на прочтение21 мин
Количество просмотров47K


В 1953 году научные сотрудники Лос-Аламосской национальной лаборатории подбирали задачу для одного из первых электронных компьютеров. Выбор пал на простейшую одномерную систему — цепочку грузиков соединённых пружинами с нелинейной упругостью. Результаты моделирования вполне соответствовали ожиданиям: после возбуждения основного колебательного режима систему предоставляли самой себе, после чего энергия равномерно распределялась по остальным колебательным модам, и движения цепочки обретали характер белого шума.

Но однажды, из-за затянувшегося обеденного перерыва, машину оставили работать дольше обычного. Спохватившись, учёные вернулись в компьютерный зал и заметили, что расчётная система, пробыв некоторое время в состоянии теплового равновесия, вышла из него, а энергия в процессе эволюции периодично кочевала между наиболее длиноволновыми модами, практически не передаваясь на коротковолновые колебания. И в конце концов, система возвращалась из хаоса в исходное состояние! Этот парадокс ознаменовал собой рождение компьютерного моделирования, теории детерминированного хаоса и солитоники.
Читать дальше →

Единая теория всего… в 3D графике? Разбираем алгебру Клиффорда как универсальный язык геометрии. Rev 1

Время на прочтение11 мин
Количество просмотров5.7K

Привет, Хабр!

Мы, программисты, инженеры и физики, привыкли к своему зоопарку математических инструментов. Векторы — для направлений и позиций. Матрицы — для трансформаций. Кватернионы — для вращений без головной боли с блокировкой осей. Комплексные числа — для 2D-поворотов и обработки сигналов. Каждый инструмент хорош для своей задачи, но мы постоянно переключаемся между ними, преобразуя данные и жонглируя концепциями.

А что, если я скажу вам, что существует единый математический объект, который может быть всем этим одновременно? Объект, который по своей природе является и скаляром, и вектором, и кватернионом, и даже спинором, в зависимости от того, как на него посмотреть.

Это не фантастика. Это — алгебра Клиффорда, также известная как геометрическая алгебра. Идея настолько мощная, что она способна навсегда изменить ваш взгляд на геометрию в 3D.

Пристегните ремни. Мы отправляемся в путешествие, где абстрактная алгебра превращается в наглядную геометрию. И огромное спасибо @master_program за переработку исходного текста в эту статью, а так же за дополнения и картинки, очень повысившие удобство чтения.

Читать далее

С go на C++ за две недели. Переписываю эмулятор ZX Spectrum

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров8.3K

В общем-то и целом, мой предыдущий эмулятор ZX Spectrum, написанный на go, работал. Показывал нужное (или очень близко к нужному) и давал чувство приближенности к программистам. Однако у него были очень фундаментальные проблемы, связанные исключительно с языком разработки. Ну по крайней мере я сейчас так думаю.

Другим движущим фактором все-таки была бесплатность БЯМок от cloud.ru (не реклама, да и бесплатности больше нет). Ну где еще можно на халяву пожечь сотни миллионов токенов и получить хоть что-то работающее?

В общем, я принял волевое решение переписать все на С++. Под катом дневник "переписчика", в котором я последовательно описываю все боли и страдания начинающего писателя эмуляторов. Желающим сразу посмотреть на конечный результат можно сходить на https://github.com/kiltum/zxcpp

Читать далее

Пишем свою мобильную ОС с нуля на Rust

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров20K

Почему бы не запустить своё ядро прямо на смартфоне? Без Android, без Linux — только Rust, загрузчик и паяльник. В этой статье расскажу о результатах своего эксперимента, как оживить голое ARM-железо, увидеть первые символы в UART и даже вывести что-нибудь на экран.

Читать далее

Еще один самодельный компьютер. Coolsystem — Часть 1

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.1K

Сегодня мы будем делать еще один восьмибитный компьютер. Да, я еще не наигрался со всеми этими штуками.

Coolsystem - идея компьютера, сочетающего в себе идеи о защищенной среде выполнения (причем в очень-очень специфичном варианте) и способного запускать готовый софт для восьмибитных персоналок 80-х годов. Также он может использоваться для изучения основ схемотехники, своего рода учебный компьютер.

Читать далее

Книга: «Строим LLM с нуля»

Время на прочтение3 мин
Количество просмотров11K

Привет, Хаброжители! Говорят, что физик Ричард Фейнман однажды сказал: «Я не понимаю того, чего не могу создать». Основываясь на этом же важном принципе, автор бестселлеров Себастьян Рашка шаг за шагом ведет вас к созданию LLM в стиле GPT, которую вы сможете запустить на своем ноутбуке. Это увлекательная книга, которая охватывает каждый этап процесса — от планирования и кодирования до обучения и тонкой настройки.

Читать далее

Отсекая лишнее: как сократить бинарный код программы на C++ и не потерять нужную функциональность

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров6.4K

Во всех устройствах YADRO, будь то системы хранения данных, серверы или коммутаторы, есть система BMC, через которую администраторы гибко управляют серверами. 

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

Меня зовут Максим Гончаров, и я расскажу, как мы оптимизировали кодовую базу на C++ по размеру конечного образа, чтобы новые фичи были доступны на всех уже работающих у заказчиков серверах.

Читать далее

Мой первый pet-проект: процесс-менеджер synd3

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.4K

Всем привет!

Пишу этот пост, чтобы поделиться своим опытом и получить критику или советы от людей с большим опытом.

Мне 22 года, я из Латвии. По образованию я судовой механик, но уже около 4 лет увлекаюсь программированием. Долгое время это оставалось хобби: пробовал сайты, простые игры — но они не приносили настоящего удовольствия. Я считал, что в программировании нужно было разбираться ещё со школы, и долго не верил, что могу найти себя в этой сфере.

Переломный момент наступил, когда я заинтересовался системным программированием. Каждый раз, когда узнаю, как работает низкоуровневая часть ОС, у меня будто открывается новый мир. Особенно зацепила тема процессорного планирования: все говорят «железо, CPU, видеокарта», но на практике даже реализация планировщика процессов может заметно влиять на производительность.

Читать далее

Задачи по алгоритмам: избавляемся от анаграмм

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2K

Задача с LeetCode.

Дан массив слов words. Слово содержит латинские буквы в нижнем регистре a-z. Проверить пары смежных слов (w_i, w_{i+1}) и удалить w_{i+1}, когда w_i и w_{i+1} - анаграммы.

Найдем группы смежных анаграмм и оставим в массиве первую строку каждой группы.

Читать далее

RL (RLM): Разбираемся вместе

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.7K

Всем привет! Недавно я познакомился с курсом по глубокому обучению с подкреплением от HuggingFace Deep Reinforcement Learning Course и захотел сделать выжимку самого интересного. Эта статья — своего рода шпаргалка по основам Reinforcement Learning (RL) и одному из ключевых алгоритмов — PPO, который лежит в основе тонкой настройки современных LLM (Large Language Models).

Читать далее

Категории типов. Часть 4. Монады

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров4.2K

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

Читать далее

Реализация DOM-подобных структур данных на C++

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.6K

Это третья статья в серии про DOM-подобные модели данных в различных языках программирования.

Ранее мы рассмотрели что такое DOM-подобные структуры данных и как оценить их поддержку языках программирования и препарировали JavaScript.

Сегодня мы проверим как с Card DOM справится С++.

Читать далее

Настоящий тест для языков программирования — как они справляются с DOM-подобными структурами данных

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.7K

Большинство тестов языков программирования — это синтетика. Мы сравниваем скорость сортировки массивов, подсчёт аллокаций и другие упражнения, которые почти не встречаются в реальной жизни.

А вот настоящие приложения — редакторы, движки, интерфейсы, базы данных — живут совсем в другом мире. Они управляют не числами, а сложными структурами объектов. И если присмотреться, почти все эти структуры сводятся к одной универсальной модели: DOM-подобному графу.

Читать далее

Новый сезон «Битовых масок» — подкаста о системном программировании и разработке процессоров

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров3K

В «Битовых масках» — подкасте «Истового инженера» — ведущие знакомят слушателей с инженерами, преподавателями и энтузиастами, которые делают железо и низкоуровневое ПО понятнее, ближе и интереснее.

В обширном списке тем — современные инструменты проектирования, open-source-инициативы, архитектуры процессоров, компиляторы, история вычислительной техники. В этом посте мы расскажем о самых известных гостях «Битовых масок» и поделимся планами по нему.

Читать далее

Как я с помощью LLM писал эмулятор ZX Spectrum

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.1K

... или может ли ИИ заменить программиста? Сейчас со всех сторон долбят про то, как ИИ помогает в жизни и вообще, если ты не используешь ИИ, то ты в отстающих и лузер. Я к этому отношусь спокойно, ибо мои занятия совершенно не допускают использование ИИ из-за очень большой цены ошибки, но долбежка все-таки делает свое дело. Плюс как-то внезапно обнаружил, что у (не реклама) cloud.ru доступны Foundation Models (они же БЯМ, они же LLM) без оплаты. Понятное дело, тестовый период и прочее, но использовать можно. Но просто мучать модельки вопросами уровня «сколько цифр в слове» смысла мало, поэтому решил попробовать сделать что-то хоть капельку полезного и получить собственный ответ на вопрос пригодности БЯМ. Результат для нетерпеливых тут https://github.com/kiltum/zxgo

Далее несколько абзацев истории, чтобы просто было понятно, каким путем я шел до результата. Скажу честно, выбор места приложения сил БЯМки был сделан довольно быстро: напиши мне много кода. Раз пока все бесплатно, выбрал самый большой Qwen и предложил ему написать эмулятор КР580ВМ80А (он же Intel 8080), причем на питоне. И внезапно, он с первой попытки сгенерил что-то очень похожее на правду. Хмыкнув, я нашел образ ПЗУ от Радио-86 и зарядил еще пару десятков запросов. Вскоре я с глубоким удовлетворением увидел в окошке заветное «РАДИО 86-РК» и следом «-->». 

Немного порадовавшись результату, я преисполнился энтузиазма и решил поднять ставки. Z80 и ZX Spectrum! Культовая машина, все нюансы которой разложены по полочкам и по которой документации на порядки больше, чем для «радио»,«микроши» и «специалиста» вместе взятых. А чтобы было совсем хардкорно, основным языком я выбрал С++.

Читать далее

Подробно о неопределённом поведении в С и C++

Время на прочтение24 мин
Количество просмотров11K

При работе с C или C++ необходимо в какой-то степени разбираться в неопределённом поведении (UB): что это такое, каковы его эффекты, и как о него не споткнуться. Для простоты картины я буду в этой статье рассказывать только о C, но всё изложенное здесь также применимо и к C++, если явно не указано иное.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность