Biorąc pod uwagę i , czy możliwe jest uzyskanie M -tego bitu (lub cyfry dowolnej małej podstawy) N! w czasie / przestrzeni O (P (ln (N), LN (M))) , gdzie p (x, y) jest kilka funkcji wielomianowej w X i Y ?M M N !p ( x , y ) x y
tzn. Biorąc pod uwagę , (z , ), znajdź bit z w .
Uwaga: zapytałem o to tutaj na mathoverflow.net i nie otrzymałem żadnych odpowiedzi, więc napisałem do siebie.
Z komentarza na drugiej stronie Gene Kopp zwraca uwagę, że można efektywnie obliczyć bity niższego rzędu, wykonując modularne bity arytmetyczne i bity wyższego rzędu przy użyciu aproksymacji Stirlinga, więc pytanie brzmi „jak skutecznie można obliczyć bity środkowego rzędu?”. .
źródło
Odpowiedź Suresha prawdopodobnie odpowiada na twoje pytanie, ale pomyślałem, że zwrócę uwagę na szczególny przypadek. Zawsze możesz obliczyć wynik dla mniej znaczących cyfr dla dowolnej bazy. Weź jako naszą bazę.p
Oczywiście każdy piąty wyraz w silni jest wielokrotnością . Każdy p termin jest wielokrotnością , i tak dalej, o najwyższej mocy , który jest czynnikiemto . jest łatwy do przybliżenia przez przybliżenie Stirlingsa: . Ponadto, więc sumę zawsze można skutecznie obliczyć, sumując zamiast (od( p 2 ) p 2 p N ! X p = ∑ ⌊ log p ( N ! ) ⌋ i = 1 ⌊ Np ( p2)) p2) p N.! logp(N!)lnN! ≈NLNXp= ∑⌊ logp( N! ) ⌋i = 1⌊ N.pja⌋ logp( N! ) lnN.! ≈ N.lnN.- N pN.⌈ logp( N) ⌉> N! 1 ≤ i ≤ N⌈ logp( N) ⌉ ⌊ N.pja⌋ = 0 dla ).i > ⌊ logp( N! ) ⌋
Zatem ostatnie cyfry zmają zero w podstawie . N ! pXp N.! p
źródło