- •1. Обработка строк
- •1.1 Функции обработки строк
- •5. Нахождение подстроки в строке.
- •6. Сравнение строк.
- •Вопросы по теме
- •3.5 Метод вставок
- •3.6 Древовидная сортировка
- •3.7 Внешняя сортировка
- •3.8 Факторы, учитываемые при выборе метода сортировки.
- •Вопросы по теме
- •4. Поиск информации
- •4.1 Основные принципы информационного поиска.
- •4.2. Логика и стратегия поиска.
- •4.3. Последовательный поиск
- •4.4. Ускоренные методы поиска
- •4.5. Блочный поиск
- •4.6. Поиск по двоичному дереву
- •4.7. Поиск с использованием прямого доступа к данным. Хеширование
- •4.8. Многоаспектный поиск
- •Вопросы по теме
- •5. Численные методы. Оптимизация функции одного аргумента
- •5.1. Методы исключения интервалов
- •5.2. Метод деления отрезка пополам (метод дихотомии)
- •5.3. Метод Фибоначчи.
- •5.4. Метод «золотого сечения»
- •Вопросы по теме
- •6. Генерация псевдослучайной последовательности.
- •6.1. Метод средних квадратов
- •6.2. Мультипликативный метод
- •Гост-алгоритм
- •7.2. Компрессия данных Эффективное кодирование
- •Код Шеннона-Фано
- •Код Хаффмана
- •7.3. Кодирование информации при передаче по каналу с помехами
- •Вопросы по теме
- •8. Базовые алгоритмы двухмерной графики
- •Вопросы по теме
5.2. Метод деления отрезка пополам (метод дихотомии)
Данный метод позволяет исключить половину интервала на каждой итерации. Его реализация основана на выборе трех точек, равномерно распределенных в интервале поиска.
Алгоритм:
Положить , вычислить.
Принять , вычислитьи.
Если <, то исключить интервал, перейти на5, иначе –4.
Если <, то исключить интервал, перейти на5, иначе – исключить.
Вычислить , если, где– точность вычислений, определяемая как требуемая минимальная длина интервала, то конец, иначе –2.
Окончание алгоритма включает в себя .
5.3. Метод Фибоначчи.
Алгоритм деления отрезка пополам не приводит за nвычислений значения функции к минимально возможному значению длины интервала. Алгоритм, обладающий этим свойством должен основываться на том, что для каждого вычисления функции исключается интервал наибольшей длины. Для этого, точки, разбивающие интервал на три подинтервала, должны выбираться из соображения симметрии так, что на каждой следующей итерации будет использоваться значение одной из точек, вычисленной на предыдущей итерации. Для этого могут быть использованы значения членов ряда Фибоначчи, для которогоk-й член рядаFk=Fk-1+Fk-2, гдеk=3,4,5…F1=F2=1.
Если нужно достичь минимума за Nшагов, то первая точка отрезка выбирается как, гдеFn–N-й член ряда Фибоначчи. Вторая точка выбирается как симметричная первой. На каждой итерации исключается один из подинтервалов и вторая точка выбирается из соображений симметрии.
5.4. Метод «золотого сечения»
Отношение соседних чисел ряда Фибоначчи при стремлении Nк бесконечности стремится к пропорции золотого сечения. Отрезок можно считать разбитым в пропорции золотого сечения, если отношение большей части отрезка к меньшей его части равно отношению всего отрезка к его большей части. Величина этого отношения равна. Вычислив значение золотого сечения с максимальной точностью, можно определить значение минимума с максимально допустимой точностью за минимальное число итераций.
Методы исключения интервалов применимы только для унимодальных функций, как непрерывных, так и дискретных.
Вопросы по теме
Задача оптимизации
Методы исключения интервалов
Эвристический метод Свена
Метод деления отрезка пополам
Метод Фибоначчи и метод «золотого сечения»
6. Генерация псевдослучайной последовательности.
Случайной называется величина из заданного диапазона, вероятность появления которой определяется функцией закона распределения. Пример: равномерное распределение дискретной случайной величины в диапазоне 1-6 – вероятность равна 1/6.
Получение действительно случайного значения возможно только в том случае, если используется физический или химический процесс в качестве задающего механизма. С помощью ЭВМ можно получить псевдослучайные последовательности. Для них характерно, что выбор одинаковых начальных значений приводит к генерации одинаковых последовательностей и существует такое N, чтоN+1 член равен первому члену последовательности.
В Си присутствуют функции, позволяющие генерировать последовательность псевдослучайных целых чисел, задавать начальное значение последовательности, задавать начальное значение случайным образом (в зависимости от системного времени).
Далее рассматриваются методы генерации псевдослучайных чисел.