Pull to refresh
2
0
Send message

Инженерный калькулятор на C++. Часть 1: Токенизатор математических выражений

Level of difficultyEasy
Reading time10 min
Views17K

Всем привет! Сегодня хочу поделиться опытом написания консольного инженерного калькулятора, который может посчитать выражение вроде (log2(18)/3.14)*sqrt(0.1*10^(-3)/0.02)

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

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

Как открыть портал наружу: самый полный гайд по VPN

Level of difficultyEasy
Reading time19 min
Views66K

Выбор, установка и настройка VPN. Какие VPN заблокированы на территории РФ. Рабочие VPN в России в 2023 году с оплатой криптой. Как ускорить VPN. Как узнать, работает ли шифрование трафика

Читать далее
Total votes 22: ↑16 and ↓6+13
Comments32

Суп с котом: забавная задачка с LeetCode

Level of difficultyMedium
Reading time11 min
Views15K

Решал я недавно задачку на LeetCode. Вроде, обычная задачка на динамическое программирование, среднего уровня сложности. Но оказалось, что её можно решить и по-другому, существенно уменьшив временную и пространственную сложность.

Ну, давай, посмотрим, что там у тебя...
Total votes 34: ↑33 and ↓1+41
Comments14

Существует ли в мультивселенной бесконечное количество наших копий?

Level of difficultyMedium
Reading time9 min
Views9.3K


Вселенная, даже наблюдаемая нами её часть, непредставимо огромна. В ней существуют триллионы галактик, разбросанных в пространстве несколько десятков миллиардов световых лет в поперечнике. Дальше, за пределами наблюдаемого нами космического горизонта, Вселенная, конечно, ещё больше: ещё больше галактик, ещё больше звёзд, ещё больше планет, возможно, даже бесконечное их число. Но существует также очень большое, возможно, даже бесконечное число возможных квантовых исходов, которые могут произойти в пределах Вселенной. Может ли существовать достаточно галактик, звёзд и «копий» известных нам объектов, чтобы вместить все эти квантовые возможности?

Независимо от того, как долго вы будете считать (если только вы не Чак Норрис) или насколько большое число вы можете себе представить, оно всегда будет бесконечно далеко от «бесконечности». Ещё один из самых удивительных математических фактов заключается в том, что не все бесконечности одинаковы. Некоторые виды бесконечности действительно больше других: как будто они каким-то образом являются большей степенью «бесконечности», чем другие бесконечности. Давайте для начала разберёмся в бесконечностях, а затем перейдём к мультивселенной и понятию бесконечного числа параллельных вселенных.
Читать дальше →
Total votes 38: ↑30 and ↓8+39
Comments9

Эйлер, Чёрч и Мандельброт — этюд о красоте и математике

Level of difficultyEasy
Reading time8 min
Views13K

Довольно часто на просторах интернета можно встретить выражение "Красота - в глазах смотрящего". Действительно ли красота субъективна, или все же в ней есть нечто объективное и общее для всех? Возможно ли, что абсолютно не похожие на нас инопланетные существа с другого конца Вселенной, с которыми нам даже не суждено ни разу встретиться за все время существования наших цивилизаций, видят красоту в том же, в чем видим её и мы?

В начале 90-х годов XX века немецкий информатик Юрген Шмидхубер представил невероятно красивую и математически строгую теорию математической красоты. Согласно этой теории людям кажутся красивыми сложные объекты, обладающие наименьшей алгоритмической сложностью. Эта величина, также известная как колмогоровская сложность, названа в честь впервые описавшего её советского математика Андрея Колмогорова.

Читать далее
Total votes 51: ↑49 and ↓2+62
Comments28

Удивительное изобретение русского инженера, которое не спасло его от нищеты. Прямило Липкина

Level of difficultyEasy
Reading time3 min
Views40K

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

Читать далее
Total votes 75: ↑59 and ↓16+62
Comments120

Что делать, если человечество не сможет создать искусcтвенный интеллект никогда?

Level of difficultyEasy
Reading time9 min
Views9.6K

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

Сводится ли к конечному автомату человеческий интеллект? К сожалению, у человеческого интеллекта есть атрибут, природа которого современной науке неизвестна и который никогда не наблюдался у конечных автоматов, например у арифмометра. Этот атрибут - ощущение собственного "я", self-awareness. Конечно вы можете сделать в программе переменную "я_чувствую_собственное_я" и присвоить ей true, а потом утверждать, что вы симулируете собственное "я", но это жульничество, а не технология.

Я вовсе не пытаюсь нагонять мистику или агитировать за бога. Self-awareness наверняка такой же физический феномен, как какая-нибудь термоядерная реакция. Но скажем древние греки не знали природы термоядерной реакции. Наверное, они вели диалоги типа "если ты не веришь, что Солнце - просто большой костер из дров, то значит ты веришь в сказки про Зевса и других богов?"

Что же делать?
Total votes 28: ↑17 and ↓11+11
Comments126

Введение в регулярные выражения в современном C++

Reading time10 min
Views93K

Регулярные выражения (Regular expressions или, вкратце, regex — регулярки) — это пока что непопулярная и недооцененная тема в современном C++. Но в то же время разумное использование регулярных выражений может избавить вас от написания множества строчек кода. Если у вас уже есть какой-никакой опыт работы в индустрии, но вы не умеете использовать регулярные выражения — вы разбазариваете 20-30% своей продуктивности. Я настоятельно рекомендую вам освоить регулярные выражение, так как это единовременная инвестиция в себя (по известному принципу “learn once, write anywhere”).

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

60 антипаттернов для С++ программиста, часть 2 (совет 6 — 10)

Level of difficultyEasy
Reading time7 min
Views4.8K

1053_60_cpp_antipatterns_ru/image2.png


Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.

Читать дальше →
Total votes 9: ↑8 and ↓1+11
Comments16

Security Week 2323: целевая атака на устройства под управлением iOS

Reading time4 min
Views3.6K
1 июня эксперты «Лаборатории Касперского» опубликовали первый отчет о новой целевой атаке на мобильные устройства Apple. Атаку обнаружили в корпоративной сети компании и назвали «Операция Триангуляция». Отчет можно считать предварительным — он дает только общие сведения о процессе атаки. Кроме того, в тексте подробно перечислены индикаторы компрометации, позволяющие другим компаниям и исследователям найти зараженные устройства: доменные имена, к которым обращается вредоносное программное обеспечение, характерные сетевые запросы. Последние предлагается анализировать по двум сценариям: по логам активности на самом устройстве (точнее, после анализа резервной копии) и по перехватам трафика в сетевом окружении.


Атаку обнаружили благодаря SIEM-системе KUMA: с ее помощью был зафиксирован подозрительный трафик в корпоративной сети Wi-Fi. Как и другие целевые атаки на устройства Apple, «Триангуляция» начинается с отправки сообщения в мессенджере iMessage. Сообщение задействует уязвимость в iOS, что позволяет выполнить произвольный код. Каких-либо действий со стороны владельца устройства не требуется: вредоносный код выполняется автоматически и незаметно для пользователя.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments0

Использование OpenMP для распараллеливания вычислений

Reading time5 min
Views56K
Есть задача — восстановить пароль по его MD5 хэшу. Пароль простой, состоит из 7 цифр и начинается с 8-ки. Оговорюсь сразу — пароль мой, я его банально забыл, и это не инструкция о том, как брутфорсить чужие пароли.

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

Рассмотрим два способа: создание нескольких рабочих потоков и использование OpenMP

Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments50

Алгоритм Байеса для аналитики данных

Level of difficultyMedium
Reading time8 min
Views13K
Автор статьи: Артем Михайлов

Алгоритм Байеса — это статистический метод, который используется для определения вероятности событий на основе предыдущих знаний об этом событии. Этот метод основан на теории вероятности, которая позволяет нам оценить вероятность случайного события, на основе его значимости и частоты его возникновения.

Он был назван в честь английского математика Томаса Байеса, который жил в 18 веке и внес значительный вклад в развитие теории вероятностей. Он также занимался исследованием теории решения задач на основе эмпирических данных.



Суть алгоритма Байеса заключается в обновлении апостериорных вероятностей для параметров модели на основе априорных вероятностей и новых наблюдений. То есть, при анализе данных, необходимо определить вероятности того, что искомый параметр принимает определенное значение. По мере поступления новых данных, вероятности для параметров модели обновляются, с учетом априорных знаний и новых данных.

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

В этой статье мы рассмотрим основные принципы этого алгоритма и как его применять на практике.
Читать дальше →
Total votes 15: ↑14 and ↓1+17
Comments8

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Application Developer, Security Engineer
Junior
From 150,000 ₽
Cryptography
C++ STL
OOP
Python