Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры Ти.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
708.32 Кб
Скачать

6.Основные понятия теории сложности: массовая и индивидуальная задачи, алгоритм, входная длина индивидуальной задачи, временная сложность алгоритма.

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

Оцениваемые характеристики могут включать время, объем памяти, число процессов и т.д. Но в расчет принимается и время, т.к. ограничение по времени – доминирующий фактор, определяющий пригодность конкретного алгоритма для практики.

Метод решения задачи описывается алгоритмом ее решения. Под массовой задачей (или просто задачей) понимается некоторый общий вопрос, на который следует дать ответ. Обычно задача содержит несколько параметров, или свободных переменных, конкретные значения которых не определены.

Задача Р определяется:

1) общим списком всех параметров;

2) формулировкой свойств, которым должен удовлетворять ответ или решение задачи.

Индивидуальная задача I получается из массовой Р, если всем параметрам Р присвоить конкретное значение.

Алгоритм – общая, выполняемая шаг за шагом процедура решения задачи. Ход алгоритма является переменным. Время работы алгоритма удобно выражать в виде функции f(n), которая характеризует размер индивидуальной задачи, т.е.объем входных данных для описания задачи. Описание индивидуальной задачи, которое дается в терминах ввода ЭВМ можно рассматривать, как одну конечную цепочку символов, выбранных из конечного входного алгоритма. Предположим, что есть способ и схема кодирования.

Входная длина индивидуальной задачи I из Р определяется как число символов в цепоч-ке, полученной применением к задаче I схемы кодирования для массовой задачи Р:

  1. I+lg n;

  2. k – полином степени k; (k+1)lg n;

  3. Матрица A(r x s), для любых Aij≤n, rs lg n.

В теории сложности есть 2 основных направления – определение сложности алгоритма и сравнение алгоритмов по сложности.

Временная сложность алгоритма – это функция, которая входной длине n ставит в соответствие максимальное время, затрачиваемое алгоритмом индивидуальных задач этой длины. Временная сложность отражает требующиеся для его работы затраты времени.

8.Алгоритм деления с остатком.

Множество всех натуральных чисел 1,2,3… будем обозначать N. Множество всех целых чисел 0,±1,±2… - Z. a,b ϵZ и a≠0. Говорят, что а делит b: a/b если существует c=ab. Это отношение рефлексивно, транзитивно, но не симметрично. Есть свойства:

  1. a/b, a/c => a/(b±c);

  2. a/b => a/bc, cϵZ;

  3. a/b, b/a => a=±b.

Теорема: Пусть а – целое число и b – натуральное. Тогда существует такие однозначно определенные q и r ϵZ: 0≤ r≤ b, что a=bq+r. Доказательство:{возьмем наибольшее b/q<a. Предположим условие: r=a-bq, b(q+1)>a => r<b. Допустим: a=bq1+r1, 0≤r1<b, тогда 0=b(q-q1)+r-r1 => (r-r1) кратно b; так как (r-r1)<b, то последнее возможно, когда (r-r1)=0; т.к. r=r1 => q=q1. Теорема справедлива для любого b≠0 при условии, что r<b заменяется на r<|b|.}