Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АМО_lec.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.1 Mб
Скачать

Псевдокод

Вход: натуральное число n

Пусть Aбулевый массив, индексируемый числами от 2 до n,

изначально заполненный значениями true.

для i := 2, 3, 4, ..., пока i2 n:

если A[i] = true:

для j := i2, i2 + i, i2 + 2i, ..., пока j n:

A[j] := false

Выход: числа i, для которых A[i] = true - это все простые числа от 2 до n.

С/С++

int n;

vector<bool> prime (n+1, true);

prime[0] = prime[1] = false;

for (int i=2; i*i<=n; ++i) // valid for n < 46340^2 = 2147395600

if (prime[i])

for (int j=i*i; j<=n; j+=i)

prime[j] = false;

Література:

1. Рублев В.С. Основы теории алгоритмов: учеб. пособие / В.С. Рублев. – Ярославль: ЯрГУ, 2005. – 143 с.

2. Гуц А.К. Математическая логика и теория алгоритмов: учеб. пособие / А.К. Гуц. – Омск: Наследие, 2003. – 108 с.

3. Кормен Т. Алгоритмы: построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн; пер. с англ., под ред. И.В. Красикова. – [3-е изд.]. – М.: Вильямс, 2013. – 1328 с.

4. Лафоре Р. Структуры данных и алгоритмы в Java / Р. Лафоре; пер. с англ. – [2-е изд.]. – СПб.: Питер, 2013. – 704 с.

Лекція 2. Алгоритмічні стратегії

2.1 Алгоритмические стратегии.

Можно выделить следующие классы (или группы) алгоритмов:

1) алгоритмы работы со структурами данных;

2) алгоритмы сортировки;

3) алгоритмы поиска;

4) алгоритмы на графах;

5) алгоритмы обработки строк.

В основе таких алгоритмов лежат следующие алгоритмические стратегии:

 «рекурсивные алгоритмы»;

 «жадные алгоритмы»;

 «эвристические алгоритмы»;

 «динамическое программирование»

 «алгоритмы грубой силы»;

 «разделяй и властвуй»;

 «алгоритмы с возвратом»;

 сопоставления с образцом и алгоритмы обработки строк/текстов;

 алгоритмы численной аппроксимации;

 оnline- и offline-алгоритмы;

 динамическое программирование;

 и другие.

з

Алгоритм. стратегии.

1. Разделяй и властвуй.

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

Пусть дана система уравнений , где  — некоторые функции,  — некоторые известные значения, x — набор неизвестных (искомых) переменных. Для произвольных значений значения отличаются от . Суть метода наименьших квадратов заключается в том, чтобы найти такие значения , при которых минимизируется сумма квадратов отклонений (ошибок)  :

Интерполя́ция, интерполи́рование — в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

Аппроксимация – процесс подбора эмпирической функции φ(х) для установления из опыта функциональной зависимости y= φ(х)

Пусть задан набор экспериментальных данных, - точек , требуется найти функцию на интервале , которая наилучшим образом приближала бы набор . Рассмотрим две точки в -мерном метрическом пространстве: ( Непринципиально: — можно считать -мерным случайным событием, -мерной случайной величины . — -мерное среднее случайной величины , с условием что - непрерывна на , - зависимость среднего значения от .) Далее: Требуется найти минимальное расстояние между двумя точками и в евклидовом пространстве (в общем случае пространство и функция расстояния может быть отличной от расстояния евклидова пространства, например как в «методе наименьших модулей»):

Приближающую функцию будем искать в виде многочлена степени :

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]