Unable to see Python's approximations in mathematical calculations -
समस्या: यह देखने के लिए कि कंप्यूटर जब गणितीय गणना में सन्निकटन करता है <
समस्या का उदाहरण:
मेरे पुराने शिक्षक ने एक बार निम्नलिखित कथन कहा
आप 200 की गणना कभी नहीं कर सकते! अपने कंप्यूटर के साथ
मुझे पूरा यकीन नहीं है कि आजकल यह सही है या नहीं। ऐसा लगता है कि ऐसा इसलिए है, जब से मुझे इसके लिए बहुत सारे शून्य मिलते हैं।
आप कैसे देख सकते हैं जब आपका पायथन कोड अनुमान दिखाता है?
पायथन को पूर्णांक के साथ गणना करने के लिए उपयोग करें, अतः यह 200 की गणना कर सकता है! वास्तविक संख्या (तथाकथित) के लिए, पायथन सटीक प्रतिनिधित्व का उपयोग नहीं करता है। यह एक द्विआधारी प्रतिनिधित्व का उपयोग करता है, जो अनिवार्य रूप से वैज्ञानिक संकेतन है, आधार 10 के बजाय बेस 2 को छोड़कर।
इस प्रकार, किसी भी वास्तविक संख्या का आधार सटीक रूप से 53 बिट सटीक के साथ बेस 2 में नहीं किया जा सकता, पायथन नहीं कर सकता एक सटीक परिणाम उत्पन्न। उदाहरण के लिए, 0.1 (बेस 10 में) बेस 2, 0.0001100110011 ... में एक अनंत दशमलव है, इसलिए यह बिल्कुल प्रतिनिधित्व नहीं किया जा सकता है। इसलिए, यदि आप एक पायथन प्रॉम्प्ट पर दर्ज करते हैं:
& gt; & gt; & gt; 0.1 0.10000000000000001
आप जो परिणाम प्राप्त करते हैं वह अलग है, क्योंकि दशमलव से द्विआधारी (शुद्धता के 53 बिट्स) के साथ दशमलव में वापस किया गया है। परिणामस्वरूप, आप इस तरह से चीजें पा सकते हैं:
& gt; & gt; & gt; 0.1 + 0.2 == 0.3 गलत
एक अच्छे के लिए (लेकिन लंबे) पढ़ें, देखें।
Comments
Post a Comment