Теория формальных языков изучает структуры и свойства языков, описанных формальными системами. Основные аспекты: 1, Грамматики: Формальные правила, которые определяют синтаксис языка. Основные типы: - Контекстно-свободные грамматики (КС-грамматики): Определяют синтаксис языков, которые можно описать с помощью синтаксических деревьев (например, язык программирования C). - Контекстно-зависимые грамматики: Более мощные и сложные, позволяют описывать языки с контекстуальными зависимостями (например,...
Computer Science
По всем вопросам: @altmainf Уважаемый менеджер: @altaiface
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20Хеширование, коллизии и деградация Хеш-таблицы зависят от: • качества хеш-функции • стратегии разрешения коллизий • коэффициента заполнения Открытая адресация страдает от кластеризации, цепочки — от неравномерного распределения. Пример: При нагрузке > 0.75 среднее число проб резко растёт. Рехеширование — операция O(n) и может стать латентным пиком в продакшене, если не контролировать рост. Реальность: O(1) — это статистическое обещание, а не гарантия.
Таблица разделов Таблица разделов — часть главной загрузочной записи (MBR), состоящая из четырёх записей по 16 байт. Каждая запись описывает один из разделов жёсткого диска. Первая запись находится по смещению 1BEh от начала сектора, содержащего MBR, каждая последующая запись вплотную примыкает к предыдущей. Для создания на диске более 4 разделов используются расширенные разделы, позволяющие создать неограниченное количество логических дисков внутри себя. Адреса начала и конца раздела задаются в...
Стоимость операций: CPU, кэш и память Асимптотическая сложность не отражает реальную стоимость операций. Современный процессор выполняет инструкции за наносекунды, но доступ к: • L1 кэшу — ~1–4 такта • L3 — десятки тактов • RAM — сотни тактов Алгоритмы с линейным проходом по памяти часто выигрывают у «умных» алгоритмов со случайным доступом. Пример: Поиск минимума в массиве — O(n) — почти всегда быстрее бинарного поиска в несмежных структурах, несмотря на худшую формальную сложность. Причина — п...
Подписи Лампорта — криптография без «магии» RSA и ECDSA держатся на сложности факторизации. А подписи Лампорта — только на хэш-функциях (например, SHA-256). Они post-quantum по умолчанию. Минимальная реализация на Python: import os import hashlib def generate_key(): private_key = [os.urandom(32) for _ in range(256 2)] public_key = [hashlib.sha256(x).digest() for x in private_key] return private_key, public_key def sign(message, private_key): h = hashlib.sha256(message).digest() signature = [] fo...
Нейронные сети и мозг: больше различий, чем сходства Многие думают, что нейросети копируют мозг. На деле: • биологические нейроны — аналоговые, асинхронные, с химическими сигналами • backpropagation в мозге не обнаружен • мозг использует крайне разреженное кодирование и тратит ~20 Вт Различия помогают: спайковые сети и neuromorphic чипы вроде Intel Loihi уже эффективнее обычных NN на edge-устройствах. ИИ не повторяет биологию, а идёт своим путём — и это хорошо.
Сколько электричества жрёт ваш код На больших масштабах разница ощутимая. Сортировка миллиона элементов пузырьком может съесть в разы больше энергии, чем Timsort. В дата-центрах уже давно оптимизируют под это — иногда простая смена структуры данных экономит 30–50%. Простой способ замерить самому — библиотека codecarbon. from codecarbon import EmissionsTracker import random tracker = EmissionsTracker() tracker.start() # Пример "прожорливого" кода data = [random.randint(0, 1000) for _ in range(1_0...
Методы кодирования символов указывают на способы представления символов в компьютерных системах. Некоторые из наиболее распространенных: ASCII (American Standard Code for Information Interchange): Это стандартное кодирование символов для компьютеров, основанное на английском алфавите. Он представляет каждый символ одним байтом (8 битами) и может быть использован для представления 128 различных символов. Unicode: Это международный стандарт для кодирования символов. Unicode расширяет ASCII, чтобы ...
Инструменты для управления политиками безопасности Эти инструменты помогают контролировать соблюдение политик безопасности в процессе разработки и эксплуатации. • OPA (Open Policy Agent): Открытый агент для управления политиками, который можно интегрировать в разные этапы DevOps-пайплайнов. • Kubernetes RBAC: Управление доступом на основе ролей (Role-Based Access Control) в Kubernetes для контроля безопасности. Эти инструменты ([1], [2], [3], [4], [5], [6], [7], [8], [9]), в сочетании с процесса...
DLL файлы, и для чего они нужны? Аббревиатура DLL – обозначает «Динамически Подключаемую Библиотеку». Она установлена, во всех операционных системах Windows, и практически каждая программа или игра на компьютере пользуется данной библиотекой. В ней содержится информация о конфигурации системы, совместимости устройств, наборе команд для правильной работы и многое другое. DLL файлы – это компоненты библиотеки, а нужна она для запуска программ, приложений и игр. Компьютер включился, и система...