मैं एक पहेली कर रहा हूं जहां मुझे आदेश 10^18 के साथ सौदा करना है। हालांकि, मुझे लगता है कि पाइथन सभी क्षेत्रों में बहुत बड़ी संख्या को संभालने में सक्षम नहीं है।क्यों पाइथन सभी क्षेत्रों में बहुत बड़ी संख्या का संचालन नहीं कर रहा है?
विशिष्ट होने के लिए, यदि हम एक = 1000000000000000000 (10^18) असाइन करते हैं और मूल अंकगणितीय गणना (+, -, /, *) करते हैं, तो इसका जवाब मिलता है। हालांकि, जब मैं इसे रेंज में उपयोग करता हूं()
>>> a = 1000000000000000000
>>> a/2
500000000000000000L
>>> a*2
2000000000000000000L
>>> a+a
2000000000000000000L
>>> a*a
1000000000000000000000000000000000000L
>>> range(a)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
range(a)
OverflowError: range() result has too many items
>>> xrange(a)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
xrange(a)
OverflowError: Python int too large to convert to C long
मैंने पायथन 2.7 का उपयोग किया।
- मैं ऐसे मामलों को कैसे संभाल सकता हूं ?, ऐसी संख्याओं को रखने वाले पहेली से निपटने का सबसे अच्छा तरीका क्या है। (ए ट्यूटोरियल/पुस्तक संदर्भ की सराहना किया जाएगा)
- क्यों अजगर रेंज में इसे संभाल करने में सक्षम नहीं है()/xrange()
मैं अजगर 2.7 में यह करने के लिए inbuild फ़ंक्शन का उपयोग करना चाहते हैं। क्या यह संभव नहीं है?
संभावित डुप्लिकेट http://stackoverflow.com/questions/1482480/xrange2100-overflowerror-long-int-too-large-to-convert-to-int –
मुझे संदेह है कि आप अपनी पहेली को सही तरीके से हल करने जा रहे हैं । आज के कंप्यूटर पर पाइथन के साथ 10^18 की गिनती 10000 वर्षों के क्रम में कहीं ले जाएगी। –
itertools.count() इसके लिए एक विकल्प प्रतीत होता है लेकिन गिनती बहुत लंबा समय ले रही है। क्या कोई अन्य कुशल विकल्प है (ऐसी परिस्थितियों पर विचार करना जहां हमें बड़े मूल्यों की गिनती करने की आवश्यकता है; पहेली को हल करना) – Surya