В третьем издании второго тома представлено полное введение в теорию получисленных алгоритмов, причем случайным числам и арифметике посвящены отдельные главы. В книге даны основы теории получисленных алгоритмов, а также примеры этих алгоритмов. Тем самым установлено прочное связующее звено между компьютерным программированием и численным анализом. Особого упоминания заслуживают предложенная Кнутом в настоящем издании новая трактовка генераторов случайных чисел, а также рассмотрение способов вычислений с помощью формальных степенных рядов.
ОГЛАВЛЕНИЕ
ГЛАВА 3. СЛУЧАЙНЫЕ ЧИСЛА ....................
3.1. ВВЕДЕНИЕ .............................
3.2. ГЕНЕРИРОВАНИЕ РАВНОМЕРНО РАСПРЕДЕЛЕННЫХ СЛУЧАЙНЫХ ЧИСЕЛ .................................
3.2.1. Линейный конгруэнтный метод ..................
3.2.1.1. Выбор модуля ......................
3.2.1.2. Выбор множителя ....................
3.2.1.3. Потенциал .......................
3.2.2. Другие методы .........................
3.3. СТАТИСТИЧЕСКИЕ КРИТЕРИИ ...................
3.3.1. Основные критерии проверки случайных наблюдений ........
3.3.2. Эмпирические критерии .....................
*3.3.3. Теоретические критерии .....................
3.3.4. Спектральный критерий .....................
3.4. ДРУГИЕ ВИДЫ СЛУЧАЙНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ......
3.4.1. Численные распределения ....................
3.4.2. Случайные выборки и перемешивания ...............
*3.5. ЧТО ТАКОЕ СЛУЧАЙНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ........
3.6. ВЫВОДЫ ...............................
ГЛАВА 4. АРИФМЕТИКА .......................
4.1. ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ ..............
4.2. АРИФМЕТИКА ЧИСЕЛ С ПЛАВАЮЩЕЙ ТОЧКОЙ ..........
4.2.1. Вычисления с однократной точностью ...............
4.2.2. Точность арифметических операций с плавающей точкой ......
*4.2.3. Вычисления с удвоенной точностью ................
4.2.4. Распределение чисел в формате с плавающей точкой ........
4.3. АРИФМЕТИКА МНОГОКРАТНОЙ ТОЧНОСТИ ............
4.3.1. Классические алгоритмы .....................
*4.3.2. Модулярная арифметика .....................
*4.3.3. Насколько быстро можно выполнять умножение ..........
4.4. ПРЕОБРАЗОВАНИЕ ИЗ ОДНОЙ СИСТЕМЫ СЧИСЛЕНИЯ В ДРУГУЮ
4.5. АРИФМЕТИКА РАЦИОНАЛЬНЫХ ЧИСЕЛ ..............
4.5.1. Дроби .............................
4.5.2. Наибольший общий делитель ...................
*4.5.3. Анализ алгоритма Евклида .....................
4.5.4. Разложение на простые множители .................
4.6. ПОЛИНОМИАЛЬНАЯ АРИФМЕТИКА .................
4.6.1. Деление полиномов ........................
*4.6.2. Разложение полиномов на множители ................
4.6.3. Вычисление степеней ........................
4.6.4. Вычисление полиномов .......................
*4.7. ОПЕРАЦИИ СО СТЕПЕННЫМИ РЯДАМИ ................
ОТВЕТЫ К УПРАЖНЕНИЯМ ......................
ПРИЛОЖЕНИЕ А. ТАБЛИЦЫ ЗНАЧЕНИЙ НЕКОТОРЫХ КОНСТАНТ
A.I. Основные константы (десятичные) ..................
А.2. Основные константы (восьмеричные) .................
А.З. Гармонические числа, числа Бернулли, числа Фибоначчи .......
ПРИЛОЖЕНИЕ Б. ОСНОВНЫЕ ОБОЗНАЧЕНИЯ ............
ПРЕДМЕТНОИМЕННОЙ УКАЗАТЕЛЬ
Эта книга представляет собой один из выпусков очередных томов всемирно известной работы Искусство программирования, не нуждающейся ни в представлении, ни в рекламе. В данный выпуск вошли разделы четвертного тома, посвященные вопросам генерации всех сочетаний и разбиений. Материалы выпуска в будущем войдут в четвертый том серии, посвященный комбинаторным алгоритмам — возможно, с определенными дополнениями и исправлениями на основе отзывов читателей данного выпуска.
Во втором издании третьего тома содержится полный обзор классических алгоритмов сортировки и поиска. Представленная в нем информация дополняет приведенное в первом томе обсуждение структур данных. Автор рассматривает принципы построения больших и малых баз данных, а также внутренней и внешней памяти.