325
Тема: randomized-compexity
Задача № 6.3.1 на странице 252
Вы разработчик военного программного комплекса, ис-
пользующего сложновычислимую и секретную функцию
F : [0, . . . , N − 1] → [0, . . . , m − 1], которую подключают к
вашему алгоритму в виде отдельного массива длины N , т. е.
функция задана таблично на внешней флеш-памяти огромно-
го объема(только вес этой флэшки — 20 кг, которую носят и
охраняют два майора-особиста). Функция гомоморфна, т. е.
F ((x + y) mod N) = (F (x) + F (y)) mod m
Однако, утром перед приемными испытаниями, выясни-
лось, что «флешка побилась», т. е. некоторые значения этой
функции стали неверными. Виновные майоры уже расстреля-
ны, а вся команда разработчиков пытается решить проблему.
Инженеры исследовали сбой — и утверждают, что «поби-
лось» не более
1
6
ячеек, к сожалению, неизвестно каких.
С учетом этого факта вам поставлена задача реализовать
простой и быстрый алгоритм, который правильно вычисляет
F (x) с вероятностью не меньше
2
3
.
Задача № 6.3.2 на странице 253
Все то же, что и в упражнении 6.3.1, но чтобы вероят-
ность ошибки P
err
можно было сделать произвольно малой,
т. е. 2
−p(|x|)
, и при этом, чтобы выполнение алгоритма было за-
медлено не больше, чем в O(p(|x|)) раз.
Задача № 6.3.3 на странице 253