Z-функция строки и её вычисление | C++

» Алгоритмы
Пусть дана строка s длины n. Тогда Z-функция ("зет-функция") от этой строки — это массив длины n, i-ый элемент которого равен наибольшему числу символов, начиная с позиции i, совпадающих с первыми символами строки s.

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

Пересечение окружности и прямой | C++

» Алгоритмы
Дана окружность (координатами своего центра и радиусом) и прямая (своим уравнением). Требуется найти точки их пересечения (одна, две, либо ни одной).

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

Длина объединения отрезков на прямой | C++

» Алгоритмы
Даны N отрезков на прямой, т.е. каждый отрезок задаётся парой координат (X1, X2). Рассмотрим объединение этих отрезков и найдём его длину.

Читать далее...
4

Пересечение двух отрезков | C++

» Алгоритмы
Даны два отрезка AB и CD (они могут вырождаться в точки). Требуется найти их пересечение: оно может быть пустым (если отрезки не пересекаются), может быть одной точкой, и может быть целым отрезком (если отрезки накладываются друг на друга).

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

Алгоритм поиска компонент связности в графе | C++

» Алгоритмы
Дан неориентированный граф G с n вершинами и m рёбрами. Требуется найти в нём все компоненты связности, т.е. разбить вершины графа на несколько групп так, что внутри одной группы можно дойти от одной вершины до любой другой, а между разными группами — пути не существует.

Читать далее...
3

Нахождение степени делителя факториала | C++

» Алгоритмы
Даны два числа: n и k. Требуется посчитать, с какой степенью делитель k входит в число n!, т.е. найти наибольшее x такое, что n! делится на k^x.

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

Проверка графа на ацикличность и нахождение цикла | C++

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

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

Вычисление факториала по модулю | C++

» Алгоритмы
В некоторых случаях необходимо считать по некоторому простому модулю p сложные формулы, которые в том числе могут содержать факториалы. Здесь мы рассмотрим случай, когда модуль p сравнительно мал. Понятно, что эта задача имеет смысл только в том случае, когда факториалы входят и в числитель, и в знаменатель дробей. Действительно, факториал p! и все последующие обращаются в ноль по модулю p, однако в дробях все множители, содержащие p, могут сократиться, и полученное выражение уже будет отлично от нуля по модулю p.

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

Поиск в глубину | C++

» Алгоритмы
Поиск в глубину
Это один из основных алгоритмов на графах.

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

Вызов функций по средству reinterpret_cast | C++

» Алгоритмы
Данный код позволяет вызывать функции из сторонних библиотек.

Читать далее...
2

Поиск в ширину | C++

» Алгоритмы
Поиск в ширину (обход в ширину, breadth-first search) — это один из основных алгоритмов на графах.

Читать далее...
4

Код Грея | C++

» Алгоритмы
Кодом Грея называется такая система нумерования неотрицательных чисел, когда коды двух соседних чисел отличаются ровно в одном бите.

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

Решето Сундарама | C

» Алгоритмы
Решето Сундарама — детерминированный алгоритм нахождения всех простых чисел до некоторого целого числа n. Разработан индийским студентом Сундарамом в 1934 году.

Читать далее...
11

Очередь (Queue) | Java

» Алгоритмы
Очередь (читается как Кью, а не Куэуэ) — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO).
Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется.

Читать далее...
4

Бинарное возведение в степень | C++

» Алгоритмы
Бинарное (двоичное) возведение в степень — это приём, позволяющий возводить любое число в n-ую степень за O(log n) умножений (вместо n умножений при обычном подходе).

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

Перехват функции, её аргументов и полная подмена вызова | C++

» Алгоритмы
Краткий алгоритм по замене адреса импортируемой функции в таблице импорта.

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

Функция Эйлера | C++

» Алгоритмы
Функция Эйлера phi (n) — это количество чисел от 1 до n, взаимно простых с n. Иными словами, это количество таких чисел в отрезке [1; n], наибольший общий делитель которых с n равен единице.

Читать далее...
5

Главная страница

» Алгоритмы
Данный проект предназначет для публикаций всевозможных алгоритмов на любом из языков программирования (предпочтение отдается C++ / C# / Java / Javascript / Python)

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