Eficientemente obteniendo trozos de N! ?

11

Dados y M , ¿es posible obtener el bit M '(o dígito de cualquier base pequeña) de N ! en tiempo / espacio de O ( p ( l n ( N ) , l n ( M ) ) ) , donde p ( x , y ) es alguna función polinómica en x e y ?NMMN!O(p(ln(N),ln(M)))p(x,y)xy

es decir, dado , M = 2 μ (con N , M Z ), encuentre el bit 2 μ de ( 2 η ) . en O ( p ( η , μ ) ) .N=2ηM=2μNMZ2μ(2η)!O(p(η,μ))

Nota: He preguntado esto en mathoverflow.net aquí y no he recibido ninguna respuesta, por lo que he publicado.

Del comentario en el otro sitio, Gene Kopp señala que uno puede calcular eficientemente los bits de orden inferior haciendo aritmética modular y bits de orden superior utilizando la aproximación de Stirling, por lo que esta pregunta es realmente '¿qué tan eficientemente se puede calcular los bits de orden medio?' .

usuario834
fuente

Respuestas:

13

Dick Lipton tiene una hermosa publicación de 2009 sobre la relación entre la función factorial y la factorización. Hay muchas cosas que no están relacionadas con esta pregunta, pero un punto destacado es este teorema:

Si se puede calcular mediante un cálculo aritmético en línea recta en pasos O ( log c n ) , luego la factorización tiene circuitos de tamaño polinómico.n!O(logcn)

Sospecho que esto es evidencia de que su pregunta, especialmente dentro de los límites de tiempo que menciona, será difícil de responder.

Suresh Venkat
fuente
1
Gracias, este es exactamente el tipo de respuesta que estaba buscando. Esto no responde directamente a mi pregunta y no veo exactamente cómo conectar los dos, pero está lo suficientemente cerca como para tranquilizarme.
user834
3

p

p(p2)p2pN!Xp=i=1logp(N!)Npilogp(N!)lnN!NlnNNpNlogp(N)>N!1iNlogp(N)Npi=0i>logp(N!)

XpN!p

Joe Fitzsimons
fuente