Escrever um número como dois quadrados e escrever os fatores de um número são igualmente difíceis?

8

Seja e o seguinte:L1L2

L1={r:x,yZ such that x2+y2=r}

L2={(N,M):M<N,1<dM such that d|N}

ReivindicarL1PL2

Prova de esboço

Se eu quero saber se .rL1

O número de soluções inteiras para é dado porx2+y2=r

g(r)=d|rχ(d) queχ(x)=sin(πx2)={1 when x1 mod 41 when x3 mod 40 when 2|x

Então . Então, responder é " ?" é tão difícil de responder quanto "quais são os divisores de ?"L1={r:g(r)0}rL1r

O que eu gostaria de saber é se isso é verdade ao contrário. É verdade que se eu tivesse uma máquina que pudesse me informar em tempo constante se poderia criar uma máquina que pudesse responder "é ?" em tempo polinomial?rL1(M,N)L2

Motivações

Esta questão surgiu de uma discussão sobre esta questão .

Desculpas Sou realmente apenas um membro do math.se que se perdeu e vagou para o cs.se. Informe-me se minha pergunta estiver clara e dentro dos padrões deste site. Fico feliz em fazer correções.

Pedreiro
fonte
Estou usando corretamente? P
Mason
1
Sua redução está correta, mas sua conclusão de que é "tão difícil quanto" está incorreta. Você acabou de mostrar que é no máximo tão difícil quanto . Especificamente, você realmente mostra que é no máximo tão difícil quanto um caso muito restrito de , o que pode ser muito fácil. L1pL2L1L2L1L2L1L2
Shaull
1
Em vez de "satisfazer um círculo", um termo melhor poderia ser "ser uma soma de dois quadrados".
Yuval Filmus
1
@ Shaull, mudei um idioma para refletir seu comentário.
Mason
1
Computar é de fato conhecido por ser tão difícil quanto fatorar, até uma redução de tempo polinomial aleatória. Veja Bach, Miller e Shallit: soma de divisores, números perfeitos e fatoração . dnd
Emil Jerabek

Respostas:

5

Aqui está a situação, tanto quanto eu posso dizer:

A maneira mais eficiente conhecida para testar a associação em é fatorar . Nenhum algoritmo mais eficiente parece ser conhecido.L1r

No entanto, não há redução óbvia para provar . Em outras palavras, se tivéssemos uma máquina para decidir , não há uma maneira fácil de usar isso para fatorar. Se queremos levar um número , podemos verificar se , mas isso só nos dá um pouco de informação sobre os fatores de . Testar múltiplos de (isto é, se para algum número inteiro ) não nos fornece nenhuma informação adicional, pois saber se é suficiente para prever se para todosL2PL1L1NNL1NNcNL1cNL1cNL1c>0. Testar outros números também não parece ajudar de maneira óbvia. (Testar se para outro número parece não fornecer informações úteis, se ; e se tivéssemos uma maneira de encontrar outro número modo que , já sabíamos como fatorar, mas é claro que não sabemos como fazer isso - portanto, qualquer número que sabemos gerar é improvável que nos dê alguma utilidade informações sobre os fatores de ) Esta não é uma prova; é apenas intuição ondulada.NL1Ngcd(N,N)=1Ngcd(N,N)1N

Portanto, parece plausível que possa ser mais fácil que , e também parece plausível que possam ter a mesma dificuldade. Não estou ciente de mais resultados sobre esse assunto.L1L2

DW
fonte