Может ли Мерлин убедить Артура в определенной сумме?


11

Мерлин, имеющий неограниченные вычислительные ресурсы, хочет убедить Артура, что для с и Простое вычисление этой суммы (модульное возведение в степень и сложение) занимает время с умножением на основе БПФ. * Но Артур может выполнять только операций.

m|pN, p primepk
(N,m,k)k=O(logN)m=O(N).N(loglogN)2+o(1)O(N)

(Обозначение для совместимости с более ранними версиями этого вопроса: пусть сумма равна ; тогда возникает вопрос, является ли целым числом.)mαα

Может ли Мерлин убедить Артура с помощью нити длины ? Если нет, может ли он убедить Артура с помощью интерактивного доказательства (общее общение, конечно, должно быть )? Если так, может ли Мерлин использовать строку длины ? Может ли Артур использовать время ?O(N)O(N)o(N)o(N)

Артур не имеет доступа к недетерминизму или другим специальным инструментам (квантовым методам, оракулам, отличным от Мерлина и т. Д.), Но при необходимости имеет пространство . Конечно, Артуру не нужно вычислять сумму напрямую, ему просто нужно убедиться, что данная тройка (N, m, k) делает уравнение истинным или ложным.O(N)

Обратите внимание, что при можно вычислить сумму за время используя метод Лагариаса-Одлызко . При сумма является суперлинейной и поэтому не может быть сохранена напрямую (без, например, модульного сокращения), но неясно, существует ли быстрый алгоритм.O ( N 1 / 2 + ε )k=0O(N1/2+ε)k>0

Я также был бы заинтересован в любом алгоритме для вычисления суммы (модульной или другой), кроме как путем прямого включения и сложения.

* чисел для расчета, время для каждого расчета.lg k log N ( log log N ) 1 + o ( 1 ) = log N ( log log N ) 2N/logNlgklogN(loglogN)1+o(1)=logN(loglogN)2+o(1)



1
Да, связано. Ключевое отличие состоит в том, что вопрос math.SE предполагает, что у Мерлина нулевые вычислительные ресурсы, а в этом - неограниченные ресурсы.
Чарльз

3
Как насчет времени, необходимого для тестирования первичности?
Питер Шор

1
@Charles: я не вижу масштабирования для подсчета простых чисел. Можете ли вы объяснить это? Я бы подумал, что это требует суперлинейного масштабирования. Сито Эратосфена дает алгоритм . O(N2)NO(N2)
Джо Фицсимонс

1
Алгоритм принадлежит Лагариасу и Одлизко. Это описывается, например, dtc.umn.edu/~odlyzko/doc/arch/analytic.pi.of.x.pdf (И это не а ) ˜ O (O(N)O~(N).
Чарльз

Ответы:


7

Я публикую это отдельно от моего предыдущего особого случая, потому что я считаю, что это другой подход к проблеме, и он мало связан с моим другим ответом. Это может быть не совсем то, что вы ищете, но это просто и близко.

Существует доказательство того, что Артур всегда примет правильное доказательство, но с вероятностью отклонит . Вот как это работает: Мерлин посылает Артур пару для каждого простого . Артур проверяет сумму (принимая время ). Артур проверяет , что правильное количество простых чисел было поставлено (путем вычисления ) , которая является сублинейна в . Наконец, для случайных пар он подтверждает, что простое число и что . Это занимает время (pi,ci=p k i  mod m)pNO(N/log(N))×O(log(N))=O(N)π(N)NSNpp k i1(loglogN)2+o(1)(pi,ci=pik mod m)pNO(N/log(N))×O(log(N))=O(N)π(N)NSNpС Н О ( ( журнал журнал N ) 2 + O ( 1 ) ) S = ( лог - лог - Н ) - ( 2 + O ( 1 ) ) S π ( N ) S Spikci mod mSN O((loglogN)2+o(1)), Взяв , мы получим линейное масштабирование по времени. Таким образом, часть всех пар проверяется. Если что-то из этого не получится, Артур, конечно, откажется. Чтобы Артур принял неверное доказательство, должна быть хотя бы одна пара, которая не прошла один из этих двух тестов (или количество пар должно быть меньше, чем который был проверен ранее). Так как доля всех пар проверяются, тест проваливается для некорректного доказательства с вероятностью по крайней мере .S=(loglogN)(2+o(1))Sπ(N)SS

Обратите внимание, что для больших это намного лучше, чем случайное угадывание, которое успешно выполняется с вероятностью .1N1m=1O(N)


Если публикация двух ответов - плохая практика, дайте мне знать, и я объединю их. Я оставил их отдельно, так как последний только что пришел ко мне, и это совершенно другой подход по сравнению с первым ответом.
Джо Фицсимонс

1
я согласен. особенно в CW вопросах часто бывает несколько ответов.
Суреш Венкат

@Suresh: Да, я знаю, но это не CW, и я не хочу показаться репортером.
Джо Фицсимонс

2
Очень хороший ответ. Это максимизирует оба ресурса - строка Мерлина а Артур использует время . Nitpick: проверка простых чисел по отдельности займет слишком много времени, чтобы получить ваши границы, но, конечно, Артур может сгенерировать их все и сравнить со списком Мерлина (требуя, чтобы он был в порядке). Θ ( N )Θ(N)Θ(N)
Чарльз

1
@JoeFitzsimons: все хорошо :). если оба ответа заслуживают повторения, вы получите двойные очки :)
Suresh Venkat

6

Это полный ответ на проблему, которая вообще не использует Merlin.

Делеглиз-Дюзар-Робло [1] дают алгоритм, который определяет число простых чисел до , которые совпадают с по модулю за времяМодификация алгоритма Лагариаса-Одлызко [2] позволяет вычислять то же самое за времяxlk,O(x2/3/log2x).O(x1/2+o(1)).

Используя любой алгоритм, найдите число простых чисел во всех простых классах модовых простых чисел, пока их произведение не станет большеДля каждого простого числа возьмем общее число простых чисел в каждом классе вычетов, умноженное на этот класс вычетов, до степени; это дает значение m.q,k

p primepNpk(modq).

Используйте китайскую теорему об чтобы определить значение суммы mod23logm.

По теореме о простых числах наибольшее необходимое простое число так что это дает сумму во времени(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 . (Да, это один и тот же человек. См. Другие ответы там для различных подходов.)


5

Это не полный ответ, а особый случай (для большего значения чем вы считаете), который я первоначально разместил в качестве комментария. В случае, когда (для некоторого целого числа ), есть простое доказательство, и строка Мерлина может иметь нулевую длину.kk=xϕ(m)x

Для этого Артур просто вычисляет . Это можно сделать с помощью факторизации (которая может быть выполнена по времени, сублинейному по даже с использованием пробного деления). Поскольку для всех , а противном случае, если тогда мы имеем , где - число различных простые делители . Как указано в разделе комментариев, можно рассчитать по сублинейному времени вϕ(m)mNpxϕ(m)0 mod mp|mpxϕ(m)1 mod mk=xϕ(m)pN,p primepkπ(N)y mod mymπ(N)Nи, следовательно, эта сумма может быть непосредственно рассчитана Артуром.

Кроме того, для частного случая, когда сумма не может быть равна , так как .m α 1 < π ( N ) < m1<N<mmα1<π(N)<m

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.