Ottenere in modo efficiente pezzi di N! ?


11

Dati e M , è possibile ottenere l' M bit (o cifra di qualsiasi piccola base) di N ! nel tempo / spazio di O ( p ( l n ( N ) , l n ( M ) ) ) , dove p ( x , y ) è una funzione polinomiale in x ed y ?NMMN!O(p(ln(N),ln(M)))p(x,y)xy

cioè Dato , M = 2 μ (con N , M Z ), trova il bit 2 μ di ( 2 η ) ! in O ( p ( η , μ ) ) .N=2ηM=2μNMZ2μ(2η)!O(p(η,μ))

Nota: l'ho chiesto su mathoverflow.net qui e non ho ricevuto alcuna risposta, quindi ho effettuato il cross-post.

Dal commento sull'altro sito, Gene Kopp sottolinea che è possibile calcolare in modo efficiente i bit di ordine inferiore eseguendo l'aritmetica modulare e i bit di ordine superiore utilizzando l'approssimazione di Stirling, quindi questa domanda è davvero "quanto si può calcolare in modo efficiente i bit di ordine medio?" .

Risposte:


13

Dick Lipton ha un bellissimo post del 2009 sul rapporto tra funzione fattoriale e factoring. Ci sono molte cose estranee a questa domanda, ma un punto saliente è questo teorema:

Se può essere calcolato mediante un calcolo aritmetico in linea retta in passi O ( log c n ) , quindi il factoring ha circuiti di dimensioni polinomiali.n!O(logcn)

Ho il sospetto che questa sia la prova che la tua domanda, specialmente entro i limiti di tempo che menzioni, sarà difficile rispondere.


1
Grazie, questo è esattamente il tipo di risposta che stavo cercando. Questo non risponde direttamente alla mia domanda e non vedo esattamente come collegare i due, ma è abbastanza vicino da mettere a riposo la mia mente.
user834

3

p

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

XpN!p

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.