От издателей русского перевода 1

От издателей русского перевода   1

О книге "Искусство программирования"  2

От редактора перевода 4

ПРЕДИСЛОВИЕ 5

Предисловие к третьему изданию 6

ПРИМЕЧАНИЯ К УПРАЖНЕНИЯМ 8

УПРАЖНЕНИЯ 10

ГЛАВА 3

СЛУЧАЙНЫЕ ЧИСЛА 11

3.1. ВВЕДЕНИЕ 11

УПРАЖНЕНИЯ 17

3.2.ГЕНЕРИРОВАНИЕ РАВНОМЕРНО РАСПРЕДЕЛЕННЫХ

СЛУЧАЙНЫХ ЧИСЕЛ 21

3.2.1. Линейный конгруэнтный метод 21

УПРАЖНЕНИЯ 22

3.2.1.1. Выбор модуля. 23

УПРАЖНЕНИЯ 26

3.2.1.2. Выбор множителя.28

УПРАЖНЕНИЯ 33

3.2.1.3. Потенциал. 35

УПРАЖНЕНИЯ 37

3.2.2. Другие методы 38

УПРАЖНЕНИЯ 49

3.3. СТАТИСТИЧЕСКИЕ КРИТЕРИИ 54

3.3.1. Основные: критерии проверки случайных наблюдений 55

С. История, библиография и теория. 68

УПРАЖНЕНИЯ 71

3.3.2. Эмпирические критерии 74

УПРАЖНЕНИЯ 90

3.3.3. Теоретические критерии 95

УПРАЖНЕНИЯ (часть 1) 105

УПРАЖНЕНИЯ (часть 2) 107

3.3.4. Спектральный критерий 108

А. Идеи, служащие обоснованием критерия. 108

*В. Дальнейшее исследование критерия. 112

С. Обоснование вычислительных методов. 113

*D. Как выполнить спектральный критерий. 117

Е. Рейтинги различных генераторов. 120

*F. Связь с критерием серий. 125

G.  Историческая справка. 130

УПРАЖНЕНИЯ 131

3.4. ДРУГИЕ ВИДЫ СЛУЧАЙНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ 135

3.4.1. Численные распределения 135

УПРАЖНЕНИЯ  156

3.4.2. Случайные выборки и перемешивания 160

УПРАЖНЕНИЯ 164

*3.5. ЧТО ТАКОЕ СЛУЧАЙНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ 167

А. Вводные замечания.167

С. Эквивалентно ли понятие ∞-распределенности понятию случайности? 177

D. Существование случайных последовательностей. 182

F. Псевдослучайные числа. 190

УПРАЖНЕНИЯ 200

3.6. ВЫВОДЫ 205

УПРАЖНЕНИЯ 210

ГЛАВА 4

АРИФМЕТИКА 216

4.1. ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ 217

УПРАЖНЕНИЯ 233

4.2. АРИФМЕТИКА ЧИСЕЛ С ПЛАВАЮЩЕЙ ТОЧКОЙ 239

4.2.1. Вычисления с однократной точностью 239

А. Обозначение чисел с плавающей точкой. 239

В. Нормализованные вычисления. 240

С. Аппаратная реализация арифметических действий над числами

с плавающей точкой. 249

D. История и библиография. 251

УПРАЖНЕНИЯ 253

4.2.2. Точность арифметических операций с плавающей точкой 256

А. Аксиоматический подход. 257

В. Арифметические действия над ненормализованными числами

с плавающей точкой. 265

С. Арифметика интервалов. 267

D. История и библиография. 268

УПРАЖНЕНИЯ 269

*4.2.3. Вычисления с удвоенной точностью 273

УПРАЖНЕНИЯ 280

4.2.4. Распределение чисел в формате с плавающей точкой 281

А. Программы сложения и вычитания. 281

В. Дробные части. 282

УПРАЖНЕНИЯ 291

4.3. АРИФМЕТИКА МНОГОКРАТНОЙ ТОЧНОСТИ  294

4.3.1. Классические алгоритмы 294

УПРАЖНЕНИЯ 311

*4.3.2. Модулярная арифметика 315

УПРАЖНЕНИЯ 323

*4.3.3. Насколько быстро можно выполнять умножение 325

*В. Модулярный метод. 334

С. Умножение при помощи дискретного преобразования Фурье. 337

Е. Умножение в реальном времени. 345

УПРАЖНЕНИЯ 348

4.4. ПРЕОБРАЗОВАНИЕ ИЗ ОДНОЙ СИСТЕМЫ СЧИСЛЕНИЯ В ДРУГУЮ 351

А. Четыре основных метода. 351

В. Преобразование с однократной точностью. 352

С. Вычисления вручную. 355

D. Преобразование чисел с плавающей точкой. 358

Е. Преобразование с многократной точностью. 359

F. История и библиография. 359

УПРАЖНЕНИЯ 360

4.5. АРИФМЕТИКА РАЦИОНАЛЬНЫХ ЧИСЕЛ 363

4.5.1. Дроби 363

УПРАЖНЕНИЯ 365

4.5.2. Наибольший общий делитель 367

Алгоритм Евклида. 368

Алгоритм Е (Оригинальный алгоритм Евклида). 370

Алгоритм А (Алгоритм Евклида в современной редакции). 370

Бинарный метод. 371

Алгоритм Х (Обобщенный алгоритм. Евклида). 376

Вычисление с высокой точностью. 379

Алгоритм L (Алгоритм Евклида для больших чисел). 381

УПРАЖНЕНИЯ 387

*4.5.3. Анализ алгоритма Евклида 391

УПРАЖНЕНИЯ 408

4.5.4. Разложение на простые множители 415

Деление и разложение на множители. 415

Разложение на простые множители с использованием псевдослучайных

циклов. 420

Метод Ферма. 423

Алгоритм Р (Вероятностная проверка, является ли число простым). 432

Разложение на простые множители при помощи цепных дробей. 434

*Теоретическая верхняя граница. 439

Секретные множители. 442

Самые большие известные простые числа. 446

УПРАЖНЕНИЯ 451

4.6. ПОЛИНОМИАЛЬНАЯ АРИФМЕТИКА 459

УПРАЖНЕНИЯ 461

4.6.1. Деление полиномов 461

Области единственного разложения на множители. 462

Наибольшие общие делители. 465

Алгоритм R (Псевдоделение полиномов). 467

Алгоритм Коллинза. 469

УПРАЖНЕНИЯ  476

*4.6.2. Разложение полиномов на множители 480

Разложение с различными степенями. 489

Наибольшие общие делители. 495

УПРАЖНЕНИЯ 497

4.6.3. Вычисление степеней 503

Уменьшение количества операций умножения. 505

Аддитивные цепочки. 507

Специальные классы цепочек. 509

Некоторые предположения. 519

УПРАЖНЕНИЯ 524

4.6.4. Вычисление полиномов 528

Табулирование значений полинома. 531

Производные и замена переменной. 532

.Цепочки полиномов (полиномиальные цепочки). 537

*Билинейные формы. 549

УПРАЖНЕНИЯ 558

*4.7. ОПЕРАЦИИ СО СТЕПЕННЫМИ РЯДАМИ 569

Алгоритм N (Обобщенное обращение степенного ряда методом Ньютона). 373

Итерация рядов. 574

Алгебраические функции. 577

УПРАЖНЕНИЯ 577

ОТВЕТЫ К УПРАЖНЕНИЯМ 582

РАЗДЕЛ 3.1 582

РАЗДЕЛ 3.2.1 587

РАЗДЕЛ 3.2.1.1 587

РАЗДЕЛ 3.2.1.2 592

РАЗДЕЛ 3.2.1.3 595

РАЗДЕЛ 3.2.2 595

РАЗДЕЛ 3.3.1 604

РАЗДЕЛ 3.3.2 607

РАЗДЕЛ 3.3.3 618

РАЗДЕЛ 3.4.1 630

РАЗДЕЛ 3.4.2 637

РАЗДЕЛ 3.5 639

РАЗДЕЛ 4.1 652

РАЗДЕЛ 4.2.1 659

РАЗДЕЛ 4.2.2 661

РАЗДЕЛ 4.2.3 665

РАЗДЕЛ 4.2.4 667

РАЗДЕЛ 4.3.1 671

РАЗДЕЛ 4.3.2 678

РАЗДЕЛ 4.3.3 681

РАЗДЕЛ 4.4 684

РАЗДЕЛ 4.5.1 687

РАЗДЕЛ 4.5.2 689

РАЗДЕЛ 4.5.3 696

РАЗДЕЛ 4.5.4  708

РАЗДЕЛ 4.6 724

РАЗДЕЛ 4.6.1 724

РАЗДЕЛ 4.6.2 731

РАЗДЕЛ 4.6.3 744

РАЗДЕЛ 4.6.4 751

РАЗДЕЛ 4.7 773

ПРИЛОЖЕНИЕ А

ТАБЛИЦЫ ЗНАЧЕНИЙ НЕКОТОРЫХ КОНСТАНТ  780

ПРИЛОЖЕНИЕ Б

 

ОСНОВНЫЕ ОБОЗНАЧЕНИЯ 784

 

Д.Э. Кнут "Искусство программирования" том 2 "Получисленные алгоритмы. Случайные числа. Арифметика."