Rumah >pembangunan bahagian belakang >C++ >Bagaimana Kita Boleh Mengeluarkan Istilah T2 dengan Cekap daripada T1 = T2 * N! Menggunakan Analisis Eksponen Perdana?

Bagaimana Kita Boleh Mengeluarkan Istilah T2 dengan Cekap daripada T1 = T2 * N! Menggunakan Analisis Eksponen Perdana?

Barbara Streisand
Barbara Streisandasal
2024-12-05 16:57:10600semak imbas

How Can We Efficiently Extract the T2 Term from T1 = T2 * N! Using Prime Exponent Analysis?

Dalam artikel ini, penulis membincangkan kaedah yang pantas dan tepat untuk mengira pemfaktoran nombor besar menggunakan perpustakaan nombor besar titik tetap. Soalan berulang tentang pelaksanaan ialah pengekstrakan istilah T2 daripada produk T1 = T2 * N!, di mana T1 dan N! sudah diketahui. Untuk mencari sebutan T2, penulis menjalankan analisis ke atas eksponen perdana dan mencadangkan formula untuk mengiranya:

T2(4N) = multiplication(i=all primes<=4N) of [i^sum(j=1,2,3,4,5,...4N/(i^j)) of [(4N/(i^j))%2]]

Subistilah T2 mempunyai eksponen e untuk perdana i di dalam sebutan T2(N) yang boleh dikira seperti ini:

for (e=0,j=N4;j;e+=j&1,j/=p);

di mana e ialah eksponen, p ialah perdana dan N4 ialah 4*N

Istilah T2 yang dikira kemudiannya digunakan untuk mengoptimumkan pengiraan faktorial, dan algoritma yang terhasil mempamerkan kerumitan pengiraan berhampiran ~ O(log(n)).

Ukuran masa kasar disediakan untuk 128 faktorial pertama. Penulis mengakui bahawa pelaksanaan ini tidak dapat dipermudahkan lagi dan sudah sangat dioptimumkan.

Atas ialah kandungan terperinci Bagaimana Kita Boleh Mengeluarkan Istilah T2 dengan Cekap daripada T1 = T2 * N! Menggunakan Analisis Eksponen Perdana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn