Мерлин, имеющий неограниченные вычислительные ресурсы, хочет убедить Артура, что для с и Простое вычисление этой суммы (модульное возведение в степень и сложение) занимает время с умножением на основе БПФ. * Но Артур может выполнять только операций.
(Обозначение для совместимости с более ранними версиями этого вопроса: пусть сумма равна ; тогда возникает вопрос, является ли целым числом.)
Может ли Мерлин убедить Артура с помощью нити длины ? Если нет, может ли он убедить Артура с помощью интерактивного доказательства (общее общение, конечно, должно быть )? Если так, может ли Мерлин использовать строку длины ? Может ли Артур использовать время ?
Артур не имеет доступа к недетерминизму или другим специальным инструментам (квантовым методам, оракулам, отличным от Мерлина и т. Д.), Но при необходимости имеет пространство . Конечно, Артуру не нужно вычислять сумму напрямую, ему просто нужно убедиться, что данная тройка (N, m, k) делает уравнение истинным или ложным.
Обратите внимание, что при можно вычислить сумму за время используя метод Лагариаса-Одлызко . При сумма является суперлинейной и поэтому не может быть сохранена напрямую (без, например, модульного сокращения), но неясно, существует ли быстрый алгоритм.O ( N 1 / 2 + ε )
Я также был бы заинтересован в любом алгоритме для вычисления суммы (модульной или другой), кроме как путем прямого включения и сложения.
* чисел для расчета, время для каждого расчета.lg k log N ( log log N ) 1 + o ( 1 ) = log N ( log log N ) 2
Ответы:
Я публикую это отдельно от моего предыдущего особого случая, потому что я считаю, что это другой подход к проблеме, и он мало связан с моим другим ответом. Это может быть не совсем то, что вы ищете, но это просто и близко.
Существует доказательство того, что Артур всегда примет правильное доказательство, но с вероятностью отклонит . Вот как это работает: Мерлин посылает Артур пару для каждого простого . Артур проверяет сумму (принимая время ). Артур проверяет , что правильное количество простых чисел было поставлено (путем вычисления ) , которая является сублинейна в . Наконец, для случайных пар он подтверждает, что простое число и что . Это занимает время (pi,ci=p k i mod m)p≤NO(N/log(N))×O(log(N))=O(N)π(N)NSNpp k i1(loglogN)2+o(1) (pi,ci=pki mod m) p≤N O(N/log(N))×O(log(N))=O(N) π(N) N SN p С Н О ( ( журнал журнал N ) 2 + O ( 1 ) ) S = ( лог - лог - Н ) - ( 2 + O ( 1 ) ) S π ( N ) S Spki≡ci mod m SN O((loglogN)2+o(1)) , Взяв , мы получим линейное масштабирование по времени. Таким образом, часть всех пар проверяется. Если что-то из этого не получится, Артур, конечно, откажется. Чтобы Артур принял неверное доказательство, должна быть хотя бы одна пара, которая не прошла один из этих двух тестов (или количество пар должно быть меньше, чем который был проверен ранее). Так как доля всех пар проверяются, тест проваливается для некорректного доказательства с вероятностью по крайней мере .S=(loglogN)−(2+o(1)) S π(N) S S
Обратите внимание, что для больших это намного лучше, чем случайное угадывание, которое успешно выполняется с вероятностью .1N 1m=1O(N)
источник
Это полный ответ на проблему, которая вообще не использует Merlin.
Делеглиз-Дюзар-Робло [1] дают алгоритм, который определяет число простых чисел до , которые совпадают с по модулю за времяМодификация алгоритма Лагариаса-Одлызко [2] позволяет вычислять то же самое за времяx l k, O(x2/3/log2x). O(x1/2+o(1)).
Используя любой алгоритм, найдите число простых чисел во всех простых классах модовых простых чисел, пока их произведение не станет большеДля каждого простого числа возьмем общее число простых чисел в каждом классе вычетов, умноженное на этот класс вычетов, до степени; это дает значениеm. q, k
Используйте китайскую теорему об чтобы определить значение суммы mod2⋅3⋯logm.
По теореме о простых числах наибольшее необходимое простое число так что это дает сумму во времени(1+o(1))logm, O(N1/2+o(1)).
Рекомендации
[1] Марк Делеглиз, Пьер Дюзар и Ксавье-Франсуа Робло, Подсчет простых чисел в классах вычетов , Математика вычислений 73 : 247 (2004), с. 1565-1575. дои 10.1.1.100.779
[2] JC Lagarias и AM Odlyzko, Computing : аналитический методπ(x) , Journal of Algorithms 8 (1987), pp. 173-191.
[3] Чарльз, ответь на MathOverflow . (Да, это один и тот же человек. См. Другие ответы там для различных подходов.)
источник
Это не полный ответ, а особый случай (для большего значения чем вы считаете), который я первоначально разместил в качестве комментария. В случае, когда (для некоторого целого числа ), есть простое доказательство, и строка Мерлина может иметь нулевую длину.k k=xϕ(m) x
Для этого Артур просто вычисляет . Это можно сделать с помощью факторизации (которая может быть выполнена по времени, сублинейному по даже с использованием пробного деления). Поскольку для всех , а противном случае, если тогда мы имеем , где - число различных простые делители . Как указано в разделе комментариев, можно рассчитать по сублинейному времени вϕ(m) m N pxϕ(m)≡0 mod m p|m pxϕ(m)≡1 mod m k=xϕ(m) ∑p≤N,p primepk≡π(N)−y mod m y m π(N) N и, следовательно, эта сумма может быть непосредственно рассчитана Артуром.
Кроме того, для частного случая, когда сумма не может быть равна , так как .m α 1 < π ( N ) < m1<N<m mα 1<π(N)<m
источник