Compte tenu et , est - il possible d'obtenir le « e bit (ou chiffre d'une petite base) dedans le temps / espace de , où est une fonction polynomiale en et ?M M N ! O ( p ( l n ( N ) , l n ( M ) ) ) p ( x , y ) x y
c'est-à-dire, étant donné , (avec , ), trouvez le bit dedans . M = 2 μ N M ∈ Z 2 μ ( 2 η ) ! O ( p ( η , μ ) )
Remarque: J'ai posé cette question sur mathoverflow.net ici et je n'ai reçu aucune réponse, j'ai donc posté plusieurs messages .
D'après le commentaire sur l'autre site, Gene Kopp souligne que l'on peut calculer efficacement les bits de poids faible en faisant de l'arithmétique modulaire et des bits de poids fort en utilisant l'approximation de Stirling, donc cette question est vraiment `` avec quelle efficacité peut-on calculer les bits de poids moyen? .
la source
La réponse de Suresh répond probablement à la question pour vous, mais j'ai pensé signaler un cas particulier. Vous pouvez toujours calculer le résultat pour les chiffres les moins significatifs pour n'importe quelle base. Prenez comme base.p
Clairement, chaque p ème terme de la factorielle est un multiple de . Chaque ( p 2 ) e terme est un multiple de p 2 , etc. Ainsi, la puissance la plus élevée de p qui est un facteur de N ! est X p = ∑ ⌊ log p ( N ! ) ⌋ i = 1 ⌊ Np ( p2) p2 p N! . logp(N!)est facile à estimer par approximation de Stirlings:lnN! ≈NEnN-N. De plus,pN⌈logp(N)⌉>N! , de sorte que la somme peut toujours être calculée efficacement en additionnant à la place pour1≤i≤N⌈logp(N)⌉(puisque⌊NXp= ∑⌊ journalp( N! ) ⌋i = 1⌊ Npje⌋ Journalp( N!) lnN! ≈ NlnN- N pN⌈ journalp(N) ⌉> N! 1 ≤ i ≤ N⌈ journalp(N) ⌉ pouri>⌊logp(N!)⌋).⌊ Npje⌋ = 0 i > ⌊ logp(N! ) ⌋
Ainsi, les derniers chiffres de N ! sont nuls en base p .Xp N! p
la source