Теория чисел, псевдокод и анализ алгоритмов
Три темы объединены, потому что все они отвечают на вопрос «как описать и оценить вычисление»: целые числа и делимость (криптография, хеши), псевдокод (идея до кода), асимптотика (масштабирование).
Теория чисел
Множество целых ℤ = {…, −2, −1, 0, 1, 2, …}. Делимость: b | a, если a = b·k при b ≠ 0.
- Простое
p > 1— ровно два делителя: 1 иp. - Основная теорема арифметики: каждое
n > 1единственно раскладывается в произведение простых (с точностью до порядка).
НОД gcd(a,b) — наибольший общий делитель; НОК lcm(a,b) — наименьшее общее кратное. Алгоритм Евклида эффективно находит НОД — основа RSA, упрощения дробей, некоторых хеш-функций.
В IT теория чисел — фундамент криптографии (модульная арифметика, простые числа), генераторов псевдослучайных чисел и проверок целостности.
Псевдокод
Псевдокод — полуформальная запись алгоритма без привязки к языку. Не компилируется; цель — передать семантику шагов для команды, учебника или спецификации.
Принципы
- абстракция от типов («целое», «массив», «строка»);
- отступы вместо жёсткого синтаксиса;
- общие слова: «если», «пока», «для», «вернуть», «вызвать».
Конструкции
Последовательность:
ввести x
y ← x² + 2x + 1
вывести y
Ветвление:
если x < 0
то вывод "отрицательное"
иначе если x = 0
то вывод "ноль"
иначе
вывод "положительное"
Циклы: пока условие (предусловие), повторять … пока (постусловие, минимум одна итерация), для i от 1 до n.
Подпрограммы:
функция Факториал(n)
если n ≤ 1
то вернуть 1
иначе
вернуть n * Факториал(n - 1)
Псевдокод удобен на этапе проектирования; реализация на Python, C# или Go должна сохранять ту же логику.
Анализ алгоритмов
Анализ оценивает время и память в зависимости от размера входа n, независимо от железа и компилятора.
| Тип анализа | Что даёт |
|---|---|
| Худший случай | гарантированная верхняя граница — основа в теории и SLA |
| Средний случай | ожидание при распределении входов |
| Лучший случай | редко информативен сам по себе |
Асимптотика (O-большое)
Описывает рост при n → ∞, игнорируя константы и младшие члены:
O(1)— доступ по индексу;O(log n)— бинарный поиск;O(n)— один проход;O(n log n)— эффективные сортировки;O(n²)— вложенные циклы поn;O(2^n),O(n!)— перебор, быстро становится неприемлемым.
Подробнее о классах сложности и примерах — в разделе Алгоритмы.
Рекурсия
Рекурсивная функция определяется через себя. Обязательны:
- базовый случай (остановка);
- рекуррентный шаг с «упрощением» аргумента.
Естественна для деревьев, списков, выражений. Риски: бесконечная рекурсия, переполнение стека — на глубоких структурах иногда переходят на итерацию или явный стек.
Дальше: Линейная алгебра.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Имя переменной, метода или класса — это когнитивный маячок, который активирует соответствующие схемы в долговременной памяти. История термина «ментальная модель» - Крейк о внутренних представлениях мира, которые строит когнитивная система. Единый процесс - согласованные по цели, времени и пространству действия участников ради одного результата. Что такое система и её элементы, как все это связано и зачем нужно. Краткое знакомство с науками, которые лежат в основе логики программ, данных и вычислений — от булевой алгебры до теории информации. Булева и предикатная логика для разработки — операции, таблицы истинности, кванторы и законы де Моргана в условиях кода. Множества, отношения, графы и комбинаторика — язык описания структур данных, сетей, зависимостей и оценки сложности в IT. Векторы, матрицы, скалярное произведение и системы линейных уравнений — основа ML, графики и численных методов. События, условная вероятность, независимость и закон больших чисел — язык неопределённости в мониторинге, ML и рисках. Математические, имитационные и логические модели — от постановки задачи до валидации и рекомендаций для IT-инфраструктуры. Приближённое решение уравнений, интерполяция и метод наименьших квадратов — когда точная формула недоступна или слишком дорога. Иерархия Хомского, конечные автоматы, грамматики и неразрешимость — основа парсеров, regex и границ статического анализа.Когнитивистика - наука о мышлении
Ментальные модели
Тектология
Системы и модели
Математическая основа IT
Логика
Дискретная математика
Линейная алгебра
Вероятность и статистика
Моделирование систем
Численные методы
Формальные языки и автоматы