Mam pytanie, dlaczego obliczenia numeryczne Pythona są bardzo szybkie? na przykład poniższy kod działa krócej niż jedną sekundęDlaczego python math.factorial (x) jest bardzo szybki?
import math
print math.factorial(10000)
dlaczego ???
Mam pytanie, dlaczego obliczenia numeryczne Pythona są bardzo szybkie? na przykład poniższy kod działa krócej niż jedną sekundęDlaczego python math.factorial (x) jest bardzo szybki?
import math
print math.factorial(10000)
dlaczego ???
The math
module's functions są zaimplementowane w C:
Zapewnia dostęp do funkcji matematycznych zdefiniowanych przez standard C.
Dzięki zastosowaniu wydajnego algorytmu w C uzyskuje się szybkie wyniki.
Jeśli pytasz, dlaczego ta konkretna operacja jest tak szybka, zobacz Why is math.factorial much slower in Python 2.x than 3.x? i C code itself.
Szybkość silni zależy od złożoności algorytmu. Prosta implementacja w C będzie znacznie wolniejsza niż algorytm używany w Pythonie 3.x –
@SvenMarnach: Jak miałem się domyślić, że OP porównywał prędkość 2 i 3 Pythona? :-P –
Wynikiem algorytmu jest liczba z ponad 30000 cyframi, przy tym ogromnym wyliczaniu liczb należy użyć tablicy lub łańcucha, ale jestem zdezorientowany, dlaczego zwraca wynik krótszy niż jedna sekunda – Pooya
Szybkość tej funkcji zależy w dużej mierze od wersji Pythona. W Pythonie 3 jest znacznie szybciej, a wydaje się, że używasz Pythona w wersji 2.x. –
Dlaczego nie byłoby szybko? – Gabe
Zobacz [Dlaczego współczynnik math.factorial jest znacznie wolniejszy w Pythonie 2.x niż 3.x?] (Http://stackoverflow.com/questions/9815252/why-is-math-factorial-much-much-slugi-w-pythonie- 2-x-than-3-x) do dyskusji na temat różnych algorytmów czynnikowych w Pythonie 2.x i 3.x. Zamykanie jako duplikat. –