2012-07-03 13 views
12

मेरे पास एक सवाल है, क्यों पाइथन संख्यात्मक गणना बहुत तेज है? उदाहरण के लिए नीचे कोड एक सेकंडक्यों पाइथन गणित। फैक्टोरियल (एक्स) बहुत तेज़ है?

import math 
print math.factorial(10000) 

क्यों की तुलना में कम चलाता है ???

+0

इस फ़ंक्शन की गति पाइथन संस्करण पर निर्भर करती है। यह पाइथन 3 में बहुत तेज़ है, जबकि आप पाइथन 2.x का उपयोग कर रहे हैं। –

+2

यह तेज़ क्यों नहीं होगा? – Gabe

+1

देखें [मैथ.फैक्टोरियल क्यों पाइथन 2.x से 3.x से धीमा है?] (Http://stackoverflow.com/questions/9815252/why-is-math-factorial-much-slower-in-python- 2-x-than-3-x) पायथन 2.x और 3.x में विभिन्न फैक्टरियल एल्गोरिदम की चर्चा के लिए। डुप्लिकेट के रूप में बंद करना। –

उत्तर

17

math module's functions सी में लागू किया जाता है:

यह गणितीय कार्य सी मानक द्वारा परिभाषित करने के लिए पहुँच प्रदान करता है।

सी में एक कुशल एल्गोरिदम का उपयोग करके, आपको तेज़ परिणाम मिलते हैं।

यदि आप पूछ रहे हैं कि यह विशेष ऑपरेशन इतना तेज़ क्यों है, तो Why is math.factorial much slower in Python 2.x than 3.x? और C code itself देखें।

+1

फैक्टरियल की गति एल्गोरिदम की जटिलता पर निर्भर करती है। सी में सीधा-आगे कार्यान्वयन पायथन 3.x –

+0

@ स्वेनमार्कैच में उपयोग किए गए एल्गोरिदम की तुलना में बहुत धीमा होगा: मुझे यह अनुमान लगाया गया था कि ओपी पाइथन 2 और 3 गति की तुलना कर रहा था? :-P –

+1

एल्गोरिदम का परिणाम 30000 अंकों के साथ एक संख्या है, इस विशाल संख्या की गणना के लिए आपको सरणी या स्ट्रिंग का उपयोग करना चाहिए, लेकिन मैं उलझन में हूं, यह परिणाम एक सेकंड से कम क्यों देता है – Pooya

संबंधित मुद्दे