Adicionar números inteiros representados por sua fatoração é tão difícil quanto fatorar? Solicitação de referência


22

Estou procurando uma referência para o seguinte resultado:

Adicionar dois números inteiros na representação fatorada é tão difícil quanto fatorar dois números inteiros na representação binária usual.

(Tenho certeza de que está lá fora, porque isso é algo que eu já tinha pensado em algum momento e fiquei emocionado quando finalmente o vi impresso).

"Adição de dois inteiros na representação factorizada" é o problema: dadas as fatorações primos de dois números x e y , a saída Fatorização primo de x+y . Observe que o algoritmo ingênuo para esse problema usa fatoração na representação binária padrão como uma sub-rotina.

Atualização : Obrigado Kaveh e Sadeq pelas provas. Obviamente, quanto mais provas, melhor, mas eu também gostaria de incentivar mais ajuda para encontrar uma referência , que, como eu disse, tenho quase certeza de que existe. Lembro-me de lê-lo em um artigo com outras idéias interessantes e pouco discutidas, mas não lembro quais eram essas outras idéias ou sobre o que era o jornal em geral.


6
Penso que um título melhor será "fatorar a soma de dois números inteiros representados por sua fatoração é tão difícil quanto fatorar?"
MS Dousti 23/07/11

1
Boa pergunta. Se pudermos escrever um número inteiro como a soma de dois inteiros fáceis de fatorar, então o que você deseja segue. É fácil de fazer se queríamos números, mas eu não vejo como fazê-lo, mesmo com log log n números. Pode valer a pena olhar para as classes de números que são fáceis de fatorar. lognloglogn
Kaveh

1
Algumas perguntas relacionadas sobre MO e Math.SE: 1 , 2 , 3
Kaveh

Respostas:


15

Suponha que possamos resolver o problema (vamos chamá-lo FactSum) na classe de complexidade e C é fechado sob log -iteration (aka log recursão -bounded) (por exemplo, se podemos calcular x * y , onde * é uma função binária, podemos calculado x 1x log n ) e contém P (esta última condição pode ser mais fraca). Mostramos que factoring é também no C .CCloglogxyx1xlognPC

Observe que cada número pode ser escrito como uma soma das potências de 2 . Cada um deles é fácil de fatorar.logn2

Agora, forneça um número, escreva-o como a soma dos poderes dele, depois escreva cada somamand na representação de fatoração e use o algoritmo para somar na representação de fatoração. O resultado será a fatoração do número de entrada.

Isso mostra que o fatoramento é redutível à identificação de do seu problema FactSum. Portanto, o fatoração está em P FactSum (e acho que P pode ser substituído por N C 1 aqui).logPFactSumPNC1


10

Não tenho conhecimento de uma referência, mas acho que criei uma prova:

Suponha que você tenha um oráculo que, ao inserir dois números fatoradosO

x=i=1npiαi

e

y=i=1mqiβi,

produz a fatoração de .x+y

Tendo acesso a , podemos fatorar qualquer número N no tempo polinomial usando o seguinte procedimento recursivo.ON

Fator de procedimento ( )N

  1. Encontre um primo tal que N / 2 x N - 1 e deixe y = N - x .xN/2xN1y=Nx
  2. Se não for primo, obtenha a fatoração de y pelo fator de chamada recursiva ( y ) e produza O ( x , f a c t ou r ( y ) ) .yyyO(x,factor(y))
  3. Outra saída .O(x,y)

Análise:

Pelo teorema dos números primos para grande o suficiente , há muitos primos entre N / 2 e N - 1 . Se N for tão pequeno que nenhum prime caia nesse intervalo, você pode fatorar N facilmente. Portanto, a etapa 1 passa.NN/2N1NN

Na etapa 2, você pode usar o AKS ou qualquer outro teste de primalidade em tempo polinomial.

O número de recursão é simplesmente , pois a cada passo N é cortado pela metade (pelo menos)O(lg(N))=O(|N|)N


PS-1: Assumir a conjectura de Goldbach pode ajudar a acelerar o procedimento para números pares (e possivelmente ímpares).

PS-2: A redução usada é uma redução de Cook. Alguém pode estar interessado em realizar a prova usando reduções de Karp.


3
Eu acho que está aberto se pudermos encontrar um primo em um determinado intervalo de forma eficiente, para que eu não veja como você está. #
Kaveh

1
@ Kaveh: Você está certo! Com algumas etapas extras, acho que posso alterar o algoritmo para não exigir que seja primo e depois fatorá-lo como y ; ou podemos assumir que a redução é probabilística (já que no tempo polinomial probabilístico , podemos encontrar um primo no intervalo especificado). xy
MS Dousti 23/07/11

2
Sim, acho que tivemos a mesma ideia, ou seja, queríamos encontrar números inteiros fáceis de somar que somavam à entrada, você tentou usar números primos, usei potências de 2. :) Ainda não sei se podemos fazer isso com número menor que o número logarítmico de consultas ao oráculo, e isso parece estar relacionado a uma questão interessante e natural da teoria dos números (escrever números como soma dos números fáceis de fatorar).
Kaveh

5

Esta resposta é independente da minha resposta anterior . Seu objetivo é abordar a preocupação de @ Kaveh nos comentários:

É fácil de fazer se queríamos números, mas eu não vejo como fazê-lo, mesmo com log log n números.lognloglogn

Eu tinha uma preocupação semelhante:

A redução usada é uma redução de Cook. Alguém pode estar interessado em realizar a prova usando reduções de Karp.

(As reduções de Karp são para problemas de decisão. Aqui, por redução de Karp, quero dizer uma redução de Cook de consulta única. Desculpe pela terminologia não padrão!)


A resposta abaixo é baseada nas discussões aqui: /math/54580/factoring-some-integer-in-the-given-interval .


Nesta resposta, fornecerei uma redução determinística de Karp em tempo polinimial, de fatoração para fatoração, a soma de dois números inteiros representados por suas fatorações . Porém, há um problema: no decorrer da prova, usarei a seguinte suposição da teoria dos números:

pnpn+1pn+1pn=O(log2pn)

Nn=|N|=O(logN)N[Nlog3N,N]log3N=O(n3)

Let x be the prime number in [Nlog3N,N], and let y=Nx.

Since 0ylog3N, we have |y|=O(loglogN)=O(logn), and y can be easily factorized (say, using trial division).

Finally, submit (x,y) along with their factorizations to the oracle, and get the factorization of N=x+y.


Thanks Sadeq, but conditional results was not what I was asking for. ps: I am interested in interesting representations of numbers and the representation that one gets from your answer (taking out a large prime) does not look very interesting to me. For giving the flavor of what I would be interesting to me: every natural number is sum of four squares.
Kaveh
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.