В третьем издании второго тома представлено полное введение в теорию получисленных алгоритмов, причем случайным числам и арифметике посвящены отдельные главы. В книге даны основы теории получисленных алгоритмов, а также примеры этих алгоритмов. Тем самым установлено прочное связующее звено между компьютерным программированием и численным анализом. Особого упоминания заслуживают предложенная Кнутом в настоящем издании новая трактовка генераторов случайных чисел, а также рассмотрение способов вычислений с помощью формальных степенных рядов.
ОГЛАВЛЕНИЕ
ГЛАВА 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. Основные константы (восьмеричные) .................
А.З. Гармонические числа, числа Бернулли, числа Фибоначчи .......
ПРИЛОЖЕНИЕ Б. ОСНОВНЫЕ ОБОЗНАЧЕНИЯ ............
ПРЕДМЕТНОИМЕННОЙ УКАЗАТЕЛЬ
Эта книга представляет собой один из выпусков очередных томов всемирно известной работы Искусство программирования, не нуждающейся ни в представлении, ни в рекламе. В данный выпуск вошли разделы четвертного тома, посвященные вопросам генерации всех деревьев, а также обзор истории генерации различных комбинаторных объектов.
Для профессионала эта книга может служить настольным справочником, для преподавателя - пособием для подготовки к лекциям и источником интересных нетривиальных задач, для студентов и аспирантов - отличным учебником. Каждый может найти в ней именно тот материал, который касается интересующей его темы, и изложенный именно с тем уровне сложности и строгости, который требуется читателю.