Искусство компьютерного программирования (аббревиатура: TAOCP) - это обширная монография, написанная Дональдом Кнутом, которая охватывает многие виды алгоритмов программирования и их анализ.
1 ответ

Как извлечь алгоритм из этих инструкций?

Я читал "Искусство компьютерного программирования" , и хотя в нем есть моменты высшей математики, которые я просто не могу получить, некоторые упражнения были забавными. После того, как я выполнил одно из них, я перехожу к ответу, чтобы увидеть, сде…
12 июл '16 в 13:30
4 ответа

Является ли (чисто) функциональное программирование антагонистическим с "классикой алгоритмов"?

Книги классических алгоритмов (TAOCP, CLR) (и не такие классические, как fxtbook) полны императивных алгоритмов. Это наиболее очевидно с алгоритмами, реализация которых в значительной степени основана на массивах, таких как комбинаторная генерация (…
01 авг '11 в 12:23
2 ответа

Как мне начать использовать ассемблер MIX/MMIX Дональда Кнута?

Я бы хотел изучать MIX/MMIX, но я не знаю, какой набор инструментов можно использовать для его написания. Я использовал uVision в прошлом для вещей, связанных с ассемблером ARM, существует ли такой эквивалент для MIX/MMIX?
12 сен '15 в 03:33
1 ответ

Разъединенный набор в TAOCP

Я хочу знать, охватил ли Дональд Кнут непересекающийся набор в своей великой книге? Если да, то какая это глава? С уважением,
30 май '10 в 15:59
1 ответ

Как понять алгоритм mysql's gen_lex_hash.cc?

Я читаю mysql gen_lex_hash.cc, но не знаю объяснения: Идею представленного алгоритма см. В книге "Искусство компьютерного программирования" Дональда Кнута, том 3 "Сортировка и поиск" (глава 6.3 "Цифровой поиск" - название и номер главы обратно перев…
16 авг '17 в 23:40
1 ответ

Искусство компьютерного программирования (2-е изд.): Математическая индукция

В разделе 1.2.1 "Математическая индукция" Кнут представляет математическую индукцию как двухэтапный процесс, чтобы доказать, что P (n) верно для всех натуральных чисел n: а) Дайте доказательство того, что P (1) верно; б) Дайте доказательство того, ч…
15 мар '13 в 08:10
1 ответ

Верхняя граница времени выполнения для b-дерева

В искусстве компьютерного программирования, внизу страницы 485 Предположим, что есть B-дерево порядка m и N ключей, поэтому на уровне l появляются листья N+1. Количество узлов на уровнях 1,2,3... не менее 2,2 [м / 2], 2 [м / 2] ^ 2... (Здесь [] обоз…
28 окт '11 в 00:32
1 ответ

Алгоритм анализа в TAOCP

ОК, я в тупике. TAOCP vol1, 3-е издание, раздел 1.3.2 "Язык ассемблера MIX" предоставляет простую программу сборки для поиска максимума массива. Программа приведена на стр. 145 вместе с указанием количества выполнений каждой инструкции. На следующей…
17 мар '12 в 14:09
1 ответ

Таокп, вопросы последовательного распределения

Я столкнулся с несколькими проблемами во время работы с последовательным размещением tacop 2.2.2, переупаковкой раздела памяти на стр. 247. Суть в том, что есть n стеков, разделяющих общие области L0 цель состоит в том, чтобы, когда происходит переп…
21 июл '09 в 03:56
0 ответов

Как мы можем получить такое же число, взяв римские цифры?

На странице 2 книги "Искусство компьютерного программирования", том 1, глава 1, Кнут (2005) пишет: "Такое же число можно также получить более простым способом, взяв римские цифры". Это часть юмористического объяснения Кнута идентифицирующего номера …
09 мар '14 в 20:19
2 ответа

Генератор гауссовских случайных чисел

Я пытаюсь реализовать генератор случайных чисел с гауссовым распределением в интервале [0,1]. float rand_gauss (void) { float v1,v2,s; do { v1 = 2.0 * ((float) rand()/RAND_MAX) - 1; v2 = 2.0 * ((float) rand()/RAND_MAX) - 1; s = v1*v1 + v2*v2; } whil…
13 мар '11 в 02:31
1 ответ

Печать номера, содержащегося в реестре

Я изучаю MMIX, поэтому я попытался создать простую программу, чтобы добавить ее себе и распечатать результат. К сожалению, это ничего не печатает. Вот моя программа: n IS $4 y IS $3 t IS $255 LOC #100 Main SET n,1 %let n = 1 ADD y,n,1 %add 1 to n an…
21 дек '10 в 20:48
3 ответа

Что означает аббревиатура или сокращение "lg"?

Что означает "lg" в следующей фразе? "... мы игнорируем младшие значащие младшие биты x при обращении к M t [ x ]". (Кнут, 2005, стр. 4-5). Из контекста кажется, что "lg t" означает "t -1", так что lg 2 будет 1, а lg 5 будет 4. Тем не менее, каково …
22 мар '14 в 21:42
2 ответа

Искусство компьютерного программирования, том 4, опечатка 2 опечатка?

Внизу страницы 5 есть фраза "меняет k на k ⊕ (1 j+1)2". Разве 1 ​​в любой степени еще 1 даже в двоичном? Я думаю это опечатка. Я послал электронное письмо доктору Кнуту, чтобы сообщить об этом, но не ожидаю ответа в течение нескольких месяцев. А пок…
11 мар '09 в 18:11
2 ответа

Кнут Искусство компьютерного программирования ex 1.1.8

Я не могу понять, что имел в виду Кнут в своих инструкциях к упражнению 8 из главы 1.1. Задача состоит в том, чтобы сделать эффективный алгоритм gcd из двух натуральных чисел m а также n используя его обозначения theta[j], phi[j], b[j] а также a[j] …
04 ноя '14 в 18:39
1 ответ

Как работает разделение в MIX?

Может кто-нибудь объяснить мне, как деление в MIX (от TAOCP от Knuth) работает на байтовой основе? rA = |-| . . . .0| rX = |+|1235|0|3|1| Память 1000 содержит |-|0|0|0|2|0|, Когда вы выполняете операцию DIV 1000 регистры становятся rA = |+|0|617|?|?…
20 апр '09 в 16:08
1 ответ

Цель установить 0 наименее значимых битов в сборке MMIX с операциями с памятью?

В документации к станку MMIX mmix-doc стр. 3 п. 4: Мы используем обозначения стоять за число, состоящее из последовательные байты, начиная с места , (Обозначение означает, что младшие значащие t битов k установлены в 0, и сохраняются только младшие …
13 июн '16 в 19:13
5 ответов

Искусство нотации компьютерного программирования

Я только начинаю читать TAOCP Том 1, и у меня возникают проблемы с пониманием стиля. Кнут упоминает, что вычислительный метод должен быть четырехкратным (Q,I, Omega, f) - но у меня возникают проблемы с пониманием того, для чего предназначен каждый и…
19 фев '09 в 18:14
1 ответ

В поисках источника алгоритма

Просматривая мои 3 тома TAOCP, я не могу найти источник короткой случайной последовательности: // Seed always in 1..0x10000 Seed = (Seed * const) % 0x10001 Был также алгоритм и, возможно, программа MIX для проверки const, так что будут возвращены вс…
29 июн '14 в 23:54
3 ответа

Какая математика вам нужна, чтобы читать искусство компьютерного программирования?

Я начал карьеру в области разработки программного обеспечения со степенью по английскому языку, а не по информатике или другим наукам / технологиям. Я прошел долгий путь на основе самообучения, но после 10 с лишним лет этого я хочу вернуться и запол…
23 авг '10 в 16:05