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?' .

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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.