Merlin, qui a des ressources informatiques illimitées, veut convaincre Arthur que
(Notation, pour la compatibilité avec les versions antérieures de cette question: Soit la somme égale à ; alors la question est de savoir si est un entier.)
Merlin peut-il convaincre Arthur avec une chaîne de longueur ? Sinon, peut-il convaincre Arthur avec une preuve interactive (la communication totale, bien sûr, doit être )? Si oui, Merlin pourrait-il utiliser une chaîne de longueur ? Arthur pourrait-il utiliser le temps ?
Arthur n'a pas accès au non-déterminisme ou à d'autres outils spéciaux (méthodes quantiques, oracles autres que Merlin, etc.) mais dispose d'un espace si nécessaire. Bien sûr, Arthur n'a pas besoin de calculer la somme directement, il doit simplement être convaincu qu'un triple donné (N, m, k) rend l'équation vraie ou fausse.
On notera que avec , il est possible de calculer la somme en temps O ( N 1 / deux + ε ) en utilisant le Lagarias-Odlyzko procédé. Pour k > 0, la somme est superlinéaire et ne peut donc pas être stockée directement (sans, par exemple, une réduction modulaire) mais il n'est pas clair s'il existe un algorithme rapide.
Je serais également intéressé par tout algorithme pour calculer la somme (modulaire ou autre) autrement que par alimentation directe et addition.
* nombres à calculer, temps lg k log N ( log log N ) 1 + o ( 1 ) = log N ( log log N ) 2 + o ( 1 ) pour chaque calcul.
la source
Réponses:
Je poste ceci séparément de mon cas spécial précédent, parce que je pense que c'est une approche différente du problème et a peu de rapport avec mon autre réponse. Ce n'est peut-être pas exactement ce que vous cherchez, mais c'est simple et ça se rapproche.
la source
C'est une réponse complète au problème qui n'utilise pas du tout Merlin.
Utilisez le théorème du reste chinois pour déterminer la valeur de la somme mod2⋅3⋯logm.
D'après le théorème des nombres premiers, le plus grand nombre premier nécessaire est ce qui donne la somme dans le temps(1+o(1))logm, O(N1/2+o(1)).
Références
[1] Marc Deléglise, Pierre Dusart et Xavier-François Roblot, Counting prime in residues classes , Mathematics of Computation 73 : 247 (2004), pp. 1565-1575. doi 10.1.1.100.779
[2] JC Lagarias et AM Odlyzko, Computing : An analytic methodπ(x) , Journal of Algorithms 8 (1987), pp. 173-191.
[3] Charles, réponse sur MathOverflow . (Oui, c'est la même personne. Voir les autres réponses pour différentes approches.)
la source
Ce n'est pas une réponse complète, mais plutôt un cas spécial (pour une valeur de supérieure à celle que vous considérez), que j'avais initialement publié en tant que commentaire. Dans le cas où (pour un entier ), il existe une preuve simple et la chaîne de Merlin peut être de longueur nulle.k k=xϕ(m) x
Pour ce faire, Arthur calcule simplement . Cela peut être fait en factorisant (ce qui peut être fait en temps sublinéaire en même en utilisant la division d'essai). Puisque pour tout , et sinon, si alors nous avons , où est le nombre de diviseurs premiers de . Comme indiqué dans la section commentaire, peut être calculé en temps sublinéaire enϕ(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 , et donc cette somme peut être directement calculée par Arthur.
De plus, dans le cas particulier où la somme ne peut pas être égale à , comme .m α 1 < π ( N ) < m1<N<m mα 1<π(N)<m
la source