Ist es bei und möglich, das M -te Bit (oder die Ziffer einer beliebigen kleinen Basis) von N zu erhalten! in Zeit / Raum von O (p (ln (N), ln (M))) , wobei p (x, y) eine Polynomfunktion in x und y ist ?M.
dh wenn , (mit , ) gegeben ist, finde Bit von in .
Anmerkung: Ich habe dies auf mathoverflow.net fragte hier und haben keine Antworten wurde immer so habe ich Quer gebucht.
In dem Kommentar auf der anderen Seite weist Gene Kopp darauf hin, dass man die Bits niedrigerer Ordnung effizient berechnen kann, indem man modulare Arithmetikbits und Bits höherer Ordnung unter Verwendung der Stirlingschen Näherung ausführt. Diese Frage lautet also wirklich: Wie effizient kann man die Bits mittlerer Ordnung berechnen? .
quelle
Sureshs Antwort beantwortet wahrscheinlich die Frage für Sie, aber ich dachte, ich würde auf einen Sonderfall hinweisen. Sie können das Ergebnis immer für die weniger signifikanten Ziffern für jede Basis berechnen. Nehmen Sie als Basis.p
Es ist klar, dass jeder p- te Term in der Fakultät ein Vielfaches von . Jeder -te Term ist ein Vielfaches von usw. Somit ist die höchste Potenz von ein Faktor vonist . ist durch Stirlings-Näherung leicht zu approximieren: . Ferner ist kann die Summe immer effizient berechnet werden, indem stattdessen (da( p 2 ) p 2 p N ! X p = ∑ ⌊ log p ( N ! ) ⌋ i = 1 ⌊ N.p (p2) p2 p N! logp(N!)lnN! ≈NlnN-NpN⌈logp(N)⌉>N! 1≤i≤N⌈logp(N)⌉⌊NXp=∑⌊logp(N!)⌋i=1⌊Npi⌋ logp(N!) lnN!≈NlnN−N pN⌈logp(N)⌉>N! 1≤i≤N⌈logp(N)⌉ i>⌊logp(N!)⌋⌊Npi⌋=0 für ).i>⌊logp(N!)⌋
Somit sind die letzten Ziffern vonsind Null in der Basis . N ! pXp N! p
quelle