लंबे पूर्णांक के लिए अधिकतम मूल्य


108

मैं एक चर के लिए एक लंबे पूर्णांक के लिए अधिकतम मूल्य कैसे निर्दिष्ट कर सकता हूं, इसी तरह, उदाहरण के लिए, C ++ के लिए LONG_MAX।


7
मुझे यकीन नहीं है कि पायथन पूर्णांक सीमित हैं। फिलहाल आप sys.maxint को पार करते हैं यह आंतरिक प्रतिनिधित्व को लंबे समय तक बदलता है, जिसमें असीमित प्रिस्क्रिप्शन है।
— tchap

मैंने पूछा क्योंकि मुझे एक के बाद एक मूल्यों के समूह के बीच एक न्यूनतम मूल्य खोजने की आवश्यकता है इसलिए पहले मुझे एक चर के लिए एक बड़ा मूल्य संग्रहीत करने की आवश्यकता है ताकि मैं इसे दूसरों के साथ तुलना कर
— सकूं

2
आपकी टिप्पणी के लिए - मैंने अंतर्निहित फ़ंक्शन मिनट का उपयोग करने की सिफारिश की है।
— जिरी

5
आपको अधिकतम मूल्य की आवश्यकता नहीं है यदि आप केवल न्यूनतम खोजने की कोशिश कर रहे हैं, भले ही आप C ++ या किसी अन्य भाषा में प्रोग्रामिंग कर रहे हों। यदि आप वैसे भी सभी तत्वों के माध्यम से लूप करने जा रहे हैं, तो पहले तत्व को अपने शुरुआती मूल्य के रूप में उपयोग करें। (लेकिन minफ़ंक्शन का उपयोग करने के लिए बेहतर है , अगर आप वास्तव में अजगर में कार्यक्रम करना चाहते हैं!)
— जॉन वाई

3
@Sreevisakh: "बड़ा मूल्य", उपयोग अनंत, के लिए float("inf")। या बेहतर, अंतर्निहित minफ़ंक्शन का उपयोग करें ।
— फ्रेड फू

जवाबों:


132

लंबे पूर्णांक:

कोई स्पष्ट रूप से परिभाषित सीमा नहीं है। उपलब्ध पता स्थान की मात्रा व्यावहारिक सीमा बनाती है।
( इस साइट से लिया गया )। जहाँ आप देखेंगे कि न्यूमेरिक प्रकार पर डॉक्स देखें Long integers have unlimited precision। पायथन 2 में, जब वे अपनी सीमा से आगे बढ़ते हैं, तो इंटीजर स्वचालित रूप से लंबे समय तक स्विच करेंगे।

>>> import sys
>>> type(sys.maxsize)
<type 'int'>
>>> type(sys.maxsize+1)
<type 'long'>


पूर्णांकों के लिए हमारे पास है

अधिकतम और अधिकतम:

एक इंट का अधिकतम मूल्य पायथन 2.x में पाया जा सकता है sys.maxint। इसे पायथन 3 में हटा दिया गया था, लेकिन sys.maxsizeअक्सर इसके बजाय इस्तेमाल किया जा सकता है। से बदलाव का :

Sys.maxint स्थिरांक को हटा दिया गया था, क्योंकि पूर्णांकों के मान की कोई सीमा नहीं है। हालाँकि, sys.maxsize को किसी भी व्यावहारिक सूची या स्ट्रिंग इंडेक्स से बड़ा पूर्णांक के रूप में इस्तेमाल किया जा सकता है। यह कार्यान्वयन के "प्राकृतिक" पूर्णांक आकार के अनुरूप है और आम तौर पर एक ही मंच पर पिछले रिलीज में sys.maxint के समान है (एक ही बिल्ड विकल्प मानते हुए)।

और, अंतर में किसी के लिए भी (पायथन 2.x):

sys.maxint पायथन के नियमित पूर्णांक प्रकार द्वारा समर्थित सबसे बड़ा सकारात्मक पूर्णांक। यह कम से कम 2 ** 31-1 है। सबसे बड़ा नकारात्मक पूर्णांक है -मैक्सिन्ट -1 - 2 के पूरक बाइनरी अंकगणितीय के उपयोग से विषमता का परिणाम है।

sys.maxsize प्लेटफ़ॉर्म के Py_ssize_t प्रकार द्वारा समर्थित सबसे बड़ा सकारात्मक पूर्णांक, और इस प्रकार अधिकतम आकार सूचियाँ, तार, dicts, और कई अन्य कंटेनर हो सकते हैं।

और पूर्णता के लिए, यहाँ पायथन 3 संस्करण है :

sys.maxsize एक पूर्णांक जो Py_ssize_t प्रकार का अधिकतम मान दे सकता है। यह 32-बिट प्लेटफॉर्म पर आमतौर पर 2 ^ 31 - 1 है और 64-बिट प्लेटफॉर्म पर 2 ^ 63 - 1 है।

तैरता:

वहाँ float("inf")और है float("-inf")। इनकी तुलना अन्य संख्यात्मक प्रकारों से की जा सकती है:

>>> import sys
>>> float("inf") > sys.maxsize
True

मैंने उसी कोड की कोशिश की, लेकिन यह अभी भी विंडोज़ 64 बिट मशीन पर अजगर 3 में इंट के रूप में टाइप दिखाता है। इसका कोई भी मूल्यवान कारण।
— मनोजप

1
@ManojP यह इसलिए है क्योंकि पायथन में पूर्णांकों के आकार की कोई सीमा नहीं है। पहले ब्लॉक उद्धरण देखें। मैं यह स्पष्ट करने के लिए संपादित करूँगा कि उदाहरण Python 2 है
— keyser

39

अजगर longबड़े पैमाने पर हो सकता है। यदि आपको किसी अन्य मूल्य से अधिक मूल्य की आवश्यकता है, तो आप उपयोग कर सकते हैं float('inf'), क्योंकि पायथन को विभिन्न प्रकारों के संख्यात्मक मूल्यों की तुलना करने में कोई परेशानी नहीं है। इसी तरह, किसी भी अन्य मूल्य से कम मूल्य के लिए, आप उपयोग कर सकते हैं float('-inf')।


1
इसलिए यह एक बहुत बड़ा मूल्य लौटाता है?
— श्रीविसख

4
यह फ्लोटिंग-पॉइंट इन्फिनिटी देता है, जो किसी भी परिमित संख्या से अधिक है।
— तैमूर

4
मुझे कहना है, यह जवाब निश्चित रूप से ओपी के शीर्षक प्रश्न के जवाब के संदर्भ में सही करने के लिए निकटतम है। यही है, "आपको पायथन प्रहरी मूल्य कैसे मिलता है जो आपके सभी इनपुट से बड़ा होगा (या कम से कम सबसे बड़े मूल्य से छोटा नहीं है)?"। इसलिए मैंने इस जवाब को बढ़ा दिया है, लेकिन मुझे लगता है कि ओपी अजगर के बजाय सोचना सीखता है तो बेहतर है।
— जॉन वाई

माना। उस ने कहा, मैं एक ऐसी स्थिति में हूं जहां मुझे केवल वही करना चाहिए जो मुझे चाहिए था।
— तैमूर

21

शीर्षक प्रश्न का सीधा उत्तर:

पूर्णांक आकार में असीमित हैं और पायथन में अधिकतम मूल्य नहीं है।

उत्तर जो पते अंतर्निहित उपयोग के मामले में कहा गया है:

आप क्या करने की कोशिश कर रहे हैं, आपकी टिप्पणी के अनुसार, आप इस समय की तर्ज पर कुछ सोच रहे हैं

minval = MAXINT;
for (i = 1; i < num_elems; i++)
    if a[i] < a[i-1]
        minval = a[i];

पाइथन में ऐसा नहीं है। पायथन के लिए एक बेहतर अनुवाद (लेकिन अभी भी सबसे अच्छा नहीं) होगा

minval = a[0]  # Just use the first value
for i in range(1, len(a)):
    minval = min(a[i], a[i - 1])

ध्यान दें कि उपरोक्त MAXINT का उपयोग बिल्कुल नहीं करता है। समाधान का वह हिस्सा किसी भी प्रोग्रामिंग भाषा पर लागू होता है: आपको किसी संग्रह में सबसे छोटे मूल्य को खोजने के लिए उच्चतम संभव मान जानने की आवश्यकता नहीं है।

लेकिन वैसे भी, आप वास्तव में पायथन में क्या करते हैं

minval = min(a)

यानी, आप एक लूप नहीं लिखते हैं। अंतर्निहित min()फ़ंक्शन को पूरे संग्रह का न्यूनतम हिस्सा मिलता है।


8

longपाइथन 2.x में टाइप मनमाने ढंग से सटीक अंकगणित का उपयोग करता है और इसमें अधिकतम संभव मूल्य जैसी कोई चीज नहीं होती है। यह उपलब्ध मेमोरी द्वारा सीमित है। पायथन 3.x में उन मूल्यों के लिए कोई विशेष प्रकार नहीं है जिन्हें देशी मशीन पूर्णांक द्वारा प्रस्तुत नहीं किया जा सकता है - सब कुछ है intऔर रूपांतरण को पर्दे के पीछे नियंत्रित किया जाता है।


7

पाइथन में C / C ++ लॉन्ग के विपरीत असीमित सटीकता है। अधिक जानकारी के लिए अजगर में खंड संख्यात्मक प्रकार देखें sys.maxint। पूर्णांक का अधिकतम मूल्य निर्धारित करें जिसे आप अभी संदर्भित कर सकते हैं । आप sys के प्रलेखन से अधिक जानकारी प्राप्त कर सकते हैं ।


1

आप उपयोग कर सकते हैं: फ्लोट का अधिकतम मूल्य है

float('inf')

नकारात्मक के लिए

float('-inf')

2
शीर्षक "लंबे पूर्णांक के लिए अधिकतम मूल्य" है , न कि फ्लोट का अधिकतम मूल्य। इसलिए, एक स्पष्टीकरण के बिना कि यह कैसे प्रश्न का उत्तर देता है, मैं इस NAA (एक उत्तर नहीं) का संबंध रखता हूं।
— Sain16ошƒаӽ

0

Python3 में, आप फ्लोट वैल्यू को इंट फंक्शन में भेज सकते हैं जो कि पूर्णांक प्रतिनिधित्व में 1.7976931348623157e + 308 नंबर प्राप्त करता है।

import sys    
int(sys.float_info.max)

यह कुछ भी उपयोगी नहीं है। यह समझाने के लिए, int (sys.float_info.max) +1 आज़माएँ और आपको बस एक पूर्णांक मिलेगा, जो एक और है, क्योंकि जैसा कि अन्य टिप्पणियों में बताया गया है कि पायथन सिर्फ असीमित परिशुद्धता पूर्णांक संग्रहीत करता है।
— tialaramex
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.