Алгоритмы
Решение олимпиадных задач по информатике:
kotov.rar (181 кБ)
И.А.Волков, В.М.Котов - СБОРНИК ОЛИМПИАДНЫХ ЗАДАЧ ПО ИНФОРМАТИКЕ С УКАЗАНИЯМИ И РЕШЕНИЯМИ
Составители сборника последних несколько лет тренировали сборную команду школьников Беларуси по информатике. Задачи, представленные в этом сборнике, давались на школьникам на подготовительных сборах, отборочных турах, олимпиадах, и достаточно полно охватывают возможную тематику олимпиадных задач. Задачи снабжены комментариями и указаниями, зачастую - полными решениями и программами или программными фрагментами. В качестве примеров мы включили несколько пол ных программ, написанных школьниками на сборах.
okulov.rar (727 кБ)
Книга по информатике.
Глава 1. ИНФОРМАТИКА - КЛЮЧЕВОЙ ПРЕДМЕТ СОВРЕМЕННОЙ ШКОЛЫ
Глава 2. ПЕРЕБОР И МЕТОДЫ ЕГО СОКРАЩЕНИЯ
Глава 3. АЛГОРИТМЫ НА ГРАФАХ
Глава 4. ОЛИМПИАДЫ ПО ИНФОРМАТИКЕ
Глава 5. АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧ
shen.rar (112 кБ)
В книге описываются решения различных задач. Автор - Шень.
Характер глав различен: в одних предлагается набор мало связанных друг с другом задач с решениями, в других по существу излагается один-единственный алгоритм.
samples.rar (30 кБ)
Набор примеров решения задач по информатике (на паскале).
olimp.rar (173 кБ)
Решения олимпиадных задач по информатике.
скачать с сайта автора
Книги про алгоритмы:
knut.rar (443 кБ)
Третий том известной монографии одного из крупнейших американских специалистов по программированию Д. Кнута состоит из 2-х частей: "Сортировка" и "Поиск". В них подробно исследуются различные алгоритмы внутренней и внешней сортировки, изучаются методы поиска информации в таблицах на основе сравнения или преобразования ключей, даются оценки эффективности предлагаемых алгоритмов. Книга снабжена большим количеством задач и примеров разной степени трудности, существенно дополняющих основной текст.
От других руководств по программированию книга выгодно отличается строгостью изложения и широким применением математического аппарата. Вместе с тем она доступна студентам 1-го курса. Знакомство с двумя первыми томами желательно, но не обязательно. Каждый, кто хочет научиться квалифицированно программировать, найдет в ней много полезного.
Рассчитана на широкий круг программистов.
algor2.rar (429 кБ)
Множество самых разнообразных алгоритмов. Они разбиты на группы и последовательно объясняются.
shifr.rar (32 кБ)
Алгоритмы шифрования RC2, RC4, RC5
trans.rar (74 кБ)
Курс "Основы построения трансляторов"
Здесь размещены методические материалы по курсу "Основы построения трансляторов", который включен в дисциплиину "Системное программное обеспечение". Курс читается в 8 семестре студентам заочного отделения специальности 2201 факультета Автоматики и вычислительной техники (АВТФ) Новосибирского государственного технического университета (НГТУ).
trans2.rar (51 кБ)
В этом архиве находятся:
- конспект лекций по теме "Трансляторы"
- примеры программ на темы Лексический и Синтаксический анализ
Различные графические эффекты:
demo.rar (542 кБ)
Набор небольших программ, реализующих всякие эффекты, с исходниками и описанием.
algor.rar (429 кБ)
Различные алгоритмы, описание мат. модели различных эффектов.
alg2.rar (188 кБ)
Различные алгоритмы, описание мат. модели различных эффектов (2).
Математика:
mathem.rar (1.4 мБ)
Различные математические алгоритмы.
long - Длинные числа и операции с ними (с исходниками).
fft_art - Дискретные преобразования Фурье,Хартли (с исходниками).
ch_teor - Китайская теорема об остатках.
long_gen - Генерация больших простых чисел.
sqrt - Квадратный корень по простому модулю.
nod - НОД, решение ax+by=1, нахождение обратного элемента по модулю.
syst - Перевод из одних систем счисления в другие.
period1 - Период бесконечной дроби 1/n.
period2 - Период бесконечной дроби N/M по основанию P.
pribl - Приближение числа в виде дроби.
rabin - Тест простоты Рабина.
jacobi - Вычисление символа Якоби (Лежанра).
num_teor - Алгоритмические проблемы теории чисел. Ю.В. Нестеренко.
pollard - Разложение на множители. P-1 метод Полларда.
mon_kar - Разложение на множители. Методы Монте-Карло.
divis - Разложение на множители. Простое деление.
geometry.rar (2.8 мБ)
Вычислительная геометрия.
1. Системы координат.
2. Структуры геометрических данных, основные операции.
3. Уравнения различных фигур и их составление по разным данным.
- Уравнения плоскости.
- Окружность по трем точкам 2D.
- Сфера.
4. Построение выпуклой оболочки конечного множества точек.
Алгоритмы 2D:
- Алгоритм Gift wrapping (с исходниками).
- Алгоритм Graham's scan.
- Алгоритм Мелькмана.
- Алгоритм Quickhull.
- Алгоритм "Разделяй-и-властвуй".
- Модифицированный алгоритм.
Алгоритм 3D:
- Трехмерный случай.
- Случай призвольной размерности в оригинальной работе Барбера.
5. Нахождение пересечения и объединения геометрических объектов.
В пространстве:
- Пересечение двух треугольников (исходник). Алгоритм описан в статье Tomas'а Moller'а A Fast Triangle-Triangle Intersection Test (файл Tritri.pdf).
- Пересечение отрезка и треугольника.
- Пересечение прямой (или отрезка) и плоскости.
- Пересечений трех плоскостей.
На плоскости:
- Пересечение прямой (отрезка) и прямой (отрезка).
- Пересечение двух окружностей.
- Пересечение двух выпуклых многоугольников.
- Пересечение: Коллекция полуплоскостей.
6. Проверка принадлежности.
- Проверка принадлежности точки многоугольнику.
- Проверка принадлежности точки прямой.
- Проверка принадлежности точки отрезку.
7. Нахождение расстояния между различными объектами.
- Вычисление расстояния между точкой и прямой/лучом/отрезком.
- Вычисление расстояния от точки до плоскости.
8. Работа с многоугольниками.
- Площадь.
- Центр тяжести.
- Нахождение ориентации простого многоугольника.
- Определение: выпуклый многоугольник или нет.
- Триангуляция монотонных полигонов.
- Декомпозиция на монотонные полигоны методом сканирующей линии.
- Оригинальная статья Зейделя (файл seidel_triang.ps).
- Реализация алгоритма Зейделя, написанная Narkhede и Manocha.
9. Разное.
- Куда попадает перпендикуляр из точки: на отрезок или на его продолжение?
- Найти прямую, имеющую общие точки с макс. числом заданных отрезков и напечатать в порядке возрастания номера отрезков, которые она пересекает.
- Дано множество, содеpжащее n точек. Постpоить описаннyю окpyжность минимального pадиyса.
- Найти порядок, в котором можно соединить N точек, чтобы получился N-угольник (те не было бы пересечений сторон).
- Найти на прямой такую точку z, сумма расстояний от которой до заданных N точек минимальна.
- Даны точки A и B Определить, какой из отрезков, OA или OB, образует больший угол с осью OX.
- На плоскости расположены N точек. Найти на оси абсцисс точку, наибольшее из расстояний от которой до выбранных точек было бы минимальным.
- Построить окружность минимального радиуса с центром на оси абсцисс так, чтобы она содержала внутри себя и на своей границе все эти точки.
10. Инкрементальный алгоритм построения триангуляции Делоне.
11. Метод Раперта построения триангуляции Делоне (файл Ruppert.ps).
12. Комментарии к методу Рапперта, связанные с практической реализацией.
13. Много различных алгоритмов построения триангуляции Делоне описываются и сравниваются в статье А. В. Скворцова (файл delaunay_compares.pdf).
14. Связь между триангуляцией Делоне, диаграммой Вороного и выпуклой оболочкой.
15. Олимпиадные задачи: геометрия.
graf.rar (451 кБ)
Графы. Поиск маршрутов.
1. Задача о кратчайших путях.
- Волновой алгоритм.
- Алгоритм Форда-Беллмана.
- Алгоритм Флойда.
- Алгоритм Дейкстры.
- Нахождение k кратчайших путей в графе.
- Smart Moves: Intelligent Pathfinding[Перевод].
2. Поиск на графе и его обход.
3. Нахождение на графе минимального остовного дерева.
4. Проверка связности графа с ненаправленными ребрами. Выделение связной компоненты графа.
5. Нахождение максимального пропускного потока.
6. Статья про графы Graphs: Weiss, Chapter 9 (файл graphs.student.ps).
comb.rar (1.1 мБ)
Комбинаторика и переборные задачи.
1. Методы программрования: переборные алгоритмы.
2. Задача о рюкзаке.
3. Hапечатать все последовательности длины N из чисел 1,2..M.
4. Подсчитать количество слов длины К из данных N букв, не содержащих данное подслово.
5. Hапечатать все перестановки чисел 1..N.
6. Сгенерировать все подмножества данного n-элементного множества {0,.., n-1}.
7. Дана строка S и набор A слов А[1],.. , A[k]. Разбить строку S на слова набора всеми возможными способами.
8. Перечислить все разбиения N на целые положительные слагаемые.
9. Перечислить все различные представление числа N в виде всевозможных произведений (сумм) K натуральных чисел.
10. У продавца и покупателя имеется неограниченное кол-во монет достоинством (1,2,5,10,20,50,100,200,500 к примеру). Покупатель купил товар на сумму n. Hужно найти минимальное кол-во монет, которые будут использованы при расплате. Деньги может давать как покупатель, так и продавец.
11. Перечислить все расстановки 8-ми ферзей на шахматной доске, при которых они не бьют друг друга.
12. A Story about the N-Queens Problem: From Exponential to (Almost) Constant Time (папка N Queens).
13. Обход доски шахматным конем.
14. Ханойские башни (с исходниками на Си++, СИ, Паскале и Бейсике. Файлы hanoi4_C++.txt, hanoi3_C.txt, hanoi2_Pascal.txt, hanoi1_Basic.txt).
15. В. Липский "Введение в комбинаторику" (файл lipsky.ps).
16. Олимпиадные задачи: переборные задачи.
17. Олимпиадные задачи: рекуррентные соотношения и динамическое программирование.
fun_con.rar (938 кБ)
Быстрое вычисление функций и констант.
Функции:
1. Приближение функций.
2. Быстрое возведение в степень.
3. Тригонометрические функции.
4. Вычисление функции Эйлера.
5. Вычисление факториала.
6. Gamma function (исходники в папке nr_gamma).
7. Квадратный корень - метод Ньютона.
8. Вычисление квадратного корня из целого числа (с исходником в файле sqrt_cpp.htm).
9. Точное вычисление обратного числа, корня m-й степени.
Константы:
1. Вычисление с нужной точностью числа Пи.
2. Квадратный корень из 2 (с исходником в файле sqrt2series_c.htm).
3. The Euler constant gamma.
4. The Apery's constant.
5. Логарифм 2.
6. Вычисление числа е - школьный метод.
7. Вычисление с большой точностью числа е (с исходником в файле e_c.htm).
8. Вычисление N-го знака.
9. Числа Фибоначчи за O(logn).
10. Binary splitting method.
11. Acceleration of the convergence of series.
Сортировка и поиск:
sort.rar (345 кБ)
Сортировка.
algor - Алгоритмы сортировки.
bubble - Сортировка пузырьком.
fast - Быстрая сортировка.
insert - Сортировка вставками.
merge - Сортировка слиянием.
piram - Пирамидальная сортировка.
radix - Поразрядная сортировка.
select - Сортировка выбором.
shell - Сортировка Шелла.
topol - Топологическая сортировка.
quest - Требования и свойства сортировок. Что когда лучше?
Сжатие и кодирование:
compr.rar (364 кБ)
Общие алгоритмы cжатия и кодирования.
ari - Арифметическое кодирование.
huff - Алгоритм сжатия по Хаффману.
lzw - Метод LZW-сжатия данных.
methods - Некоторые методы сжатия данных.
preph - Использование алгоритма расширяющегося префикса для кодирования и схожих пpоцессов.
quest - Архиваторы. Способы сжатия данных. Контрольные вопросы.
rle - RLE (Групповое кодирование).
uue - UUE-кодирование.
shennon - Кодирование методом Шеннона-Фано.
some_mat - Математика и программирование : маленькие заметки. Небольшая модификация алгоритма Хаффмана.
techn - Проект технологии сжатия данных.
aud_comp.rar (263 кБ)
Сжатие аудиосигналов.
audiopac - Improved Lossless Transform Coding of Audio Signals. Мощный алгоритм сжатия без потерь. Слабо распространенная ветвь такого рода алгоритмов.
dac - Digital Audio Compression. Обзор различных методов сжатия цифрового звука.
ltac - ossless Audio Coding. Дано краткое описание основных методов сжатия аудиофайлов без потерь.
pic_comp.rar (882 кБ)
Сжатие изображений.
jpeg - Основы алгоритма сжатия JPEG.
comp_met - Статья: Алгоритмы сжатия изображений. Пособие знакомит с основными понятиями сжатия изображений, базовыми алгоритмами и современными направлениями развития теории сжатия изображений. Пособие можно рассматривать как практическое руководство. Рассчитано на читателей, знакомых с C++ и имеющих представление о базовых алгоритмах.
Исходники:
sound.rar (302 кБ)
Набор исходников (некоторые с описанием) для работы со звуком.
c_math.rar (16 кБ)
В этих файлах приводятся исходники мат. функций (таких как sin, cos, log и т.д.)
Другое:
bz.rar (296 кБ)
1. Основы построения систем основанных на знаниях (СОЗ)
2. Экспертные системы
3. Приобретение и формализация знаний
4. Представление знаний с использованием логики предикатов
5. Семантические сети
6. Продукционные модели
7. Представление знаний с применением фреймов
8. Стратегии поиска в СОЗ
9. Нечеткие множества в системах основанных на знаниях
Назад