2009-02-19 9 views
22

सी में बड़ी संख्या को संभालने का सबसे आसान तरीका क्या है? मुझे क्षेत्र 1000^900 में मूल्यों को स्टोर करने की आवश्यकता है ...सी में बिगइंटर?

क्या किसी को ऐसा करने का एक आसान तरीका पता है? आपकी किसी भी मदद के हम दिल से आभारी होंगे!

+0

1000^900 * वास्तव में * बड़ा है, और यह स्मृति सीमाओं के कारण बिग इंटीग्रर्स समस्याओं को दे सकता है। आपको शायद कुछ ऐसी चीज चाहिए जो प्रतीकात्मक गणना करता है ताकि आप मूल्य 1000^900 लुढ़का सकें। – jww

उत्तर

31

उपयोग libgmp:

जीएमपी पर हस्ताक्षर किए पूर्णांक, परिमेय संख्याओं, और चल बिन्दु संख्या पर काम, मनमाने ढंग से सटीक गणित के लिए एक मुफ्त पुस्तकालय है। मशीन जीएमपी पर चलता में उपलब्ध स्मृति से गर्भित लोगों को छोड़कर परिशुद्धता के लिए कोई व्यावहारिक सीमा ... नहीं है

के बाद से संस्करण 6, जीएमपी दोहरी लाइसेंस, GNU LGPL v3 और GNU GPL v2 के तहत वितरित किया जाता है ...

जीएमपी का मुख्य लक्ष्य प्लेटफार्म यूनिक्स-टाइप सिस्टम, जैसे जीएनयू/लिनक्स, सोलारिस, एचपी-यूएक्स, मैक ओएस एक्स/डार्विन, बीएसडी, एईक्स इत्यादि हैं। यह 32-बिट और 64 दोनों में विंडोज पर काम करने के लिए भी जाना जाता है। -बिट मोड ...

+0

जीएमपी 1000^900 जितना बड़ा संभाल सकता है? – jww

+1

मैंने परीक्षण नहीं किया है लेकिन यह पढ़ता है "उपलब्ध स्मृति द्वारा निहित लोगों को छोड़कर परिशुद्धता के लिए कोई व्यावहारिक सीमा नहीं है"। एक त्वरित अनुमान यह है कि 1000⁹⁰⁰ <1024⁹⁰⁰ यह 9000 बिट्स से कम में फिट बैठता है। मुझे कोई कारण नहीं दिखता कि इसे जीएमपी क्यों तोड़ना चाहिए। – kmkaplan

10

कुछ पुस्तकालयों रहे हैं तो आप इस (मनमाना परिशुद्धता गणित) ऐसा करने में सहायता करने के लिए:

(यानी आप मज़ा या उसके एक शौक या सिर्फ एक कुछ सीखने अवसरों को के लिए भी कर रहे हैं) यह मानते हुए संबंधित काम नहीं कर रहा है, मनमाने ढंग से सटीक गणित के लिए एक पुस्तकालय अप कोडिंग एक अपेक्षाकृत दिलचस्प परियोजना है। लेकिन अगर आपको पूरी तरह से भरोसा करने की ज़रूरत है और नट्स और बोल्ट में दिलचस्पी नहीं है तो बस लाइब्रेरी का उपयोग करें।

5

बड़ी संख्या में हैंडलिंग के लिए कई पुस्तकालय हैं। क्या आपको पूर्णांक या फ़्लोटिंग पॉइंट अंकगणित की आवश्यकता है?

आप कार्य के लिए पायथन में बनाए गए कोड को देख सकते हैं।

आप कार्य के लिए पर्ल के लिए एक्सटेंशन देख सकते हैं।

आप कार्य के लिए ओपनएसएसएल में कोड देख सकते हैं।

आप जीएनयू एमपी (बहु परिशुद्धता) पुस्तकालय को देख सकते हैं - जैसा कि kmkaplan द्वारा उल्लिखित है।

+0

क्या होगा यदि मुझे किसी बाहरी पुस्तकालय का उपयोग नहीं करना है और केवल जीसीसी का उपयोग करने की अनुमति है। अब, वास्तव में 'बिगिनट्स' स्टोर करने या उन पर कोई गणना करने के लिए मुझे क्या करना है? – barnes

+2

Knuth पढ़ें? मेरा मतलब है, टीएओसीपी - कंप्यूटर प्रोग्रामिंग की कला ([वॉल्यूम 2, सेमी-न्यूमेरिकल एल्गोरिदम] (http://www.amazon.com/Art- कंप्यूटर- प्रोग्रामिंग- वॉल्यूम- सेमिन्यूमेरिकल/डीपी/0201896842); सेक्शन 4.3 एकाधिक- प्रेसिजन अंकगणित लागू होता है)।या बहु-परिशुद्धता अंकगणित को कवर करने वाली कोई भी समान पुस्तक। –

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