Pull to refresh
0
0
Send message

О роли комплексных чисел в науке

Reading time10 min
Views38K

Комплексные числа (z=x+iy) прочно вошли в арсенал методов исследования окружающего нас Мира - от теории элементарных частиц до космологии. К сожалению, во всех теоретических моделях, они (комплексные числа) рассматриваются в качестве технического приема, облегчающего математические вычисления. Наблюдательные данные и экспериментальные результаты «объясняются» только с помощью вещественной части комплексного выражения, полученного из теоретического расчета. Мнимую часть отбрасывают, как не реальную (не наблюдаемую).

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

Читать далее
Total votes 13: ↑10 and ↓3+13
Comments93

Удивительная и загадочная 𝛾

Reading time10 min
Views9.1K


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

Я расскажу о константе $\gamma$, не менее важной, чем $e$ или $\pi$.

Сумму

$\sum_{n=1}^{\infty}\left[\frac{1}{n}-\frac{1}{n+1}\right]=1$

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

Получилась «цепочка», которая сложена так, что для результата бóльшую важность имеют её концы. Сделаем ещё одну цепочку, только вместо обращения числа поставим его логарифм.
Читать дальше →
Total votes 23: ↑21 and ↓2+27
Comments2

Генераторы на корутинах C++

Reading time5 min
Views12K

Я уже пару лет как развлекаюсь написанием различных программ на C++ с использованием корутин. Но до сего момента это были асинхронные приложения. Я активно использовал co_await, но ни разу еще мне не понадобился co_yield. И вот, после трех дней вынужденного ничегонеделанья в больнице, я решил этот пробел восполнить и попробовать написать собственный генератор. А заодно и получше разобраться с promise_type и coroutine_handle

Читать далее
Total votes 16: ↑13 and ↓3+13
Comments8

48 полноценных бесплатных книг для программистов (happy developer's day)

Reading time2 min
Views110K

Привет, Хабр! Немного запоздало (ко дню программиста) делюсь подборкой бесплатных книг по программированию. Все они полезные, уровень скорее профессиональный, хотя и для развития от базового тоже подойдет, но, к сожалению, на английском. Среди тем книг: .NET, Алгоритмы, Android, iOS, Angular, C, C++, C#, JS, Linux, Python. В целом, найдется почти любая тема, которая приходит в голову.

Дисклеймер. Все эти книги взяты с одного ресурса, который существует за счет донейшенов. Получить книги можно без осуществления донейшенов, ресурс полностью бесплатный, пожертвования опциональны. Все книги написаны на основе контента со StackOverflow и являются код-ориентированными. Книги со временем обновляются. По ссылкам -- книги, актуальные на 15.09.2021.

Читать далее
Total votes 83: ↑82 and ↓1+98
Comments55

Простая нейронка без библиотек и многомерных массивов

Reading time10 min
Views31K

Руководство? Гайд? В общем описание моего опыта создания простой, а главное понятной любому новичку нейросети :)

Дисклеймер: хочу сказать, что смысл этой статьи не в правильном способе создания нейросетей, таких статей сотни, а в способе понять, что такое нейросети и наконец перейти от теории к практике.

Читать далее
Total votes 23: ↑19 and ↓4+16
Comments49

7 ложных предположений о том, как устроены строки

Reading time10 min
Views24K

Как Unicode уничтожает большинство ваших предположений о том, как на самом деле работают строки



Когда речь идет о написании чего-то простого, мы, программисты, обычно действуем интуитивно. В случае с простыми вещами мы полагаемся на четкий набор предположений вместо конкретных знаний о том, как эти вещи работают. Например, мы предполагаем, что если b = a + 1, то b больше a, или что если мы применим функцию malloc для какого-то буфера, то получим необходимое количество памяти для записи. Мы не заглядываем в документацию всякий раз, когда имеем дело с мелочами.


Мы делаем так, потому что тотальная проверка замедлит работу. Однако если бы мы все-таки провели проверку, мы бы обнаружили, что обычно ошибаемся в своих предположениях. Существует арифметическое переполнение, в результате которого a + 1 может быть значительно меньше, чем a. Иногда malloc дает нам null вместо буфера и мы оказываемся в пролете.


Нам обычно приходится обжечься на таких вещах, чтобы хотя бы немного изменить свои предположения. И даже тогда мы обычно исправляем их весьма условно.
Столкнувшись с досадной ошибкой переполнения, мы можем скорректировать свое предположение о целых числах в виде «a + 1 больше a, если отсутствует вероятность, при которой a представляет собой очень большое число». И мы действуем исходя из этого, вместо того, чтобы обдумать четкие правила, по которым работает переполнение.


Уточненные предположения – это опыт. Чаще всего они позволяют нам работать быстрее и правильнее. Однако мы можем вообще переместить некоторые вещи, например, правильную обработку malloc, из нашей внутренней категории «простые вещи» во внутреннюю категорию «сложные вещи». И тогда мы действительно можем пойти и уточнить, как они работают.

Читать дальше →
Total votes 67: ↑65 and ↓2+85
Comments40

КОМПАС-3D и Linux → Часть 1

Reading time3 min
Views74K

Вода, конечно, камень точит и курочка по зёрнышку клюёт, а ползущая линуксонизация начала настигать промышленность. Видимо, план перехода на операционные системы на базе ядра linux принимает четкие очертания и начинает реализовываться. И одними из первых на этом пути находятся предприятия оборонно-промышленного комплекса нашей страны с их процессами конструкторско-технологической подготовки производства. Реализация такого плана требует, кроме запуска офисных приложений, еще и запуск САПР под ОС на ядре linux.

Вот, в рамках этой задачи, мы “поковырялись” и расскажем про наш опыт запуска системы КОМПАС-3D  в операционной системе Ubuntu с помощью Wine.

Узнай как настроить КОМПАС-3D под Linux
Total votes 25: ↑25 and ↓0+25
Comments103

C++ zero-cost abstractions на примере хеш-таблиц в ClickHouse. Доклад Яндекса

Reading time12 min
Views12K
Хеш-таблицы — это королевы структур данных. Нигде не сломано так много копий, как на оптимизации хеш-таблиц. В докладе я рассказал ещё об одной хеш-таблице, которая используется в ClickHouse. Вы увидите, что zero-cost abstractions в современном С++ оправдывают себя и как с помощью небольших трюков получить разнообразные структуры данных из общей кодовой базы. На основе общих строительных блоков можно построить быстроочищаемую хеш-таблицу, несколько видов LRU-кешей, lookup-таблицы без хешей, хеш-таблицы для строк и т. п. Я показал, как получить максимальную производительность на конкретных сценариях и не ошибиться при её тестировании. В моём докладе — самая мякотка низкоуровневых оптимизаций. В общем, то, что мы любим.

— Для начала мы обсудим, зачем нужны хеш-таблицы, где их можно использовать в базах данных и как сделать их оптимальными. Затем посмотрим бенчмарки различных хеш-таблиц в интернете и разбёремся, как делать их правильно. В конце посмотрим на C++-обертку над идеальной хеш-таблицей в ClickHouse.
Читать дальше →
Total votes 23: ↑20 and ↓3+29
Comments10

Наследование в C++: beginner, intermediate, advanced

Reading time9 min
Views294K

В этой статье наследование описано на трех уровнях: beginner, intermediate и advanced. Expert нет. И ни слова про SOLID. Честно.


Beginner


Что такое наследование?


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


Класс, который наследует данные, называется подклассом (subclass), производным классом (derived class) или дочерним классом (child). Класс, от которого наследуются данные или методы, называется суперклассом (super class), базовым классом (base class) или родительским классом (parent). Термины “родительский” и “дочерний” чрезвычайно полезны для понимания наследования. Как ребенок получает характеристики своих родителей, производный класс получает методы и переменные базового класса.


Наследование полезно, поскольку оно позволяет структурировать и повторно использовать код, что, в свою очередь,

Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments62

Ретроконсоль своими руками Часть 1. Выбираем «железо»

Reading time9 min
Views16K

Нелегкая ситуация, сложившаяся на рынке видеокарт, — отличный повод вспомнить о том, что компьютерные игры — это вовсе не 4K, не «волшебные лучи» RTX и тем более не количество полигонов на кончике носа главного героя. Крепко сбитый, захватывающий игровой процесс — вот то, что отличает хорошую видеоигру от плохой, а вовсе не качество графики. В наше время это «сакральное» знание во многом было утеряно: современные игроделы делают ставку на красивую картинку и аддиктивные механики, забывая о том, что игра прежде всего должна развлекать и приносить радость.

Впрочем, благодаря эмуляторам классических игровых систем, сегодня практически каждый может прикоснуться к удивительному миру ретроигр, создатели которых ставили во главу угла именно геймплей. Ну а самый «идеологически верный» способ это сделать — собрать миниатюрную консоль на базе одноплатного компьютера. Справиться с подобной задачей сможет даже человек, далекий от мира DIY, благо все необходимое можно приобрести на AliExpress, а сам процесс сборки подобного девайса оказывается не намного сложнее сборки конструктора «Лего» и доступен даже тем, кто никогда не увлекался DIY.

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

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments21

Пишем свою ОС: Выпуск 1

Reading time6 min
Views274K
Данный цикл статей посвящён низкоуровневому программированию, то есть архитектуре компьютера, устройству операционных систем, программированию на языке ассемблера и смежным областям. Пока что написанием занимаются два хабраюзера — iley и pehat. Для многих старшеклассников, студентов, да и профессиональных программистов эти темы оказываются весьма сложными при обучении. Существует много литературы и курсов, посвящённых низкоуровневому программированию, но по ним сложно составить полную и всеохватывающую картину. Сложно, прочитав одну-две книги по ассемблеру и операционным системам, хотя бы в общих чертах представить, как же на самом деле работает эта сложная система из железа, кремния и множества программ — компьютер.

Каждый решает проблему обучения по-своему. Кто-то читает много литературы, кто-то старается поскорее перейти к практике и разбираться по ходу дела, кто-то пытается объяснять друзьям всё, что сам изучает. А мы решили совместить эти подходы. Итак, в этом курсе статей мы будем шаг за шагом демонстрировать, как пишется простая операционная система. Статьи будут носить обзорный характер, то есть в них не будет исчерпывающих теоретических сведений, однако мы будем всегда стараться предоставить ссылки на хорошие теоретические материалы и ответить на все возникающие вопросы. Чёткого плана у нас нет, так что многие важные решения будут приниматься по ходу дела, с учётом ваших отзывов.
Читать дальше →
Total votes 293: ↑282 and ↓11+271
Comments225

Создаем новую OS. Действительно новую, реально операционную, и правда – систему

Reading time23 min
Views87K

О создании новой операционной системы в последнее время говорят немало, особенно в России. В сумме размер всех публикаций по данной теме наверняка превышает размеры исходного кода любой операционной системы. Так что остается только одна проблема – от этих разговоров никаких новых OS не появляется. Всё, что предъявляется публике (и на что тратятся бюджетные деньги), на поверку оказывается кастомизированными сборками OS семейства Linux, а значит, не содержит ничего принципиально нового. Но, если о чем-то не говорят, это не значит, что его не существует.
В этой статье – проект принципиально новой OS, созданный в нерабочее время одним из ведущих сотрудников (Principal Engineer) российского подразделения Intel.
Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments158

ABBYY NeoML 2.0: Python и многое другое

Reading time11 min
Views5.3K


Прошел почти год с тех пор, как мы опубликовали на GitHub библиотеку для машинного обучения NeoML. О чем, конечно же, была статья на Хабре. Мы обещали поддерживать и развивать ее. Свое обещание мы сдержали, и на днях свет увидела вторая версия библиотеки!

С первой версии в жизни проекта произошло много интересного: мы продолжили разработку на GitHub, освоили Azure DevOps для регулярных сборок, поддержали новые платформы, добавили немало новых и не столь новых, но очень нужных алгоритмов, добавили производительности и — самое главное — сделали для библиотеки Python интерфейс! Собственно, после окончания работ над Python оберткой библиотека и получила номер версии 2.0.

Ниже я подробнее расскажу о том, как это все происходило.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments4

Механизм движения физических тел

Reading time18 min
Views6.6K

Научная гипотеза

Владимир Резников – инженер

   1.Введение

   В этой статье мы обсудим проблему "дискретности" и "непрерывности" движения физических тел. Этот вопрос впервые был поднят в V веке до нашей эры древнегреческим философом Зеноном Элейским, и по сей день продолжаются горячие дискуссии по этому поводу. Как выразился голландский математик Дирк Ян Стройк в своей книге "Краткий очерк истории математики, 1948 год: парадоксы Зенона" "... вызвали такое волнение, что даже сейчас наблюдается некоторая рябь".Зенон сформулировал ряд апорий (неразрешимых суждений). Мы рассмотрим одну из них, которая называется "Дихотомия" (деление на два) (Рис.1).

Читать далее - разделы статьи
Total votes 11: ↑3 and ↓8-5
Comments65

Где разошлись пути немецкого и английского: Apfel vs. apple

Reading time4 min
Views11K

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

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments4

Новый класс простых чисел, который я открыл случайно

Reading time16 min
Views23K

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

Читать далее
Total votes 56: ↑54 and ↓2+77
Comments79

Фильтр Калмана

Reading time10 min
Views434K


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →
Total votes 178: ↑173 and ↓5+168
Comments84

Линейная алгебра для Data Science и Machine Learning

Reading time7 min
Views30K

Линейная алгебра в Data Science и Machine Learning является основополагающей. Новички, начинающие свой путь обучения в области Data Science, а также признанные практики должны развить хорошее понимание основных понятий линейной алгебры.

Специально к новому старту курса математика и Machine Learning для Data Science делимся переводом статьи Бенджамина Оби Тайо — физика, кандидата наук и преподавателя Data Science — о том, что нужно знать, чтобы лучше понимать Data Science и Machine Learning.

Читать далее
Total votes 11: ↑8 and ↓3+8
Comments0

Свод правил по работе с целыми числами в C/C++

Reading time11 min
Views54K

В основу статьи легли мои собственные выработанные нелегким путем знания о принципах работы и правильном использовании целых чисел в C/C++. Помимо самих правил, я решил привести список распространенных заблуждений и сделать небольшое сравнение системы целочисленных типов в нескольких передовых языках. Все изложение строилось вокруг баланса между краткостью и полноценностью, чтобы не усложнять восприятие и при этом отчетливо передать важные детали.
Читать дальше →
Total votes 54: ↑46 and ↓8+62
Comments100

Information

Rating
Does not participate
Registered
Activity