2010-09-18 16 views
10

में अत्यधिक बड़ा पूर्णांक संभव डुप्लिकेट:
Working with large numbers in PHP.पीएचपी

मैं एक पूरी तरह से बेकार फेसबुक अनुप्रयोग चलाने के। मुझे पूर्णांक के लिए PHP के समर्थन में कोई समस्या है। असल में, उपयोगकर्ता खुद को हास्यास्पद संख्याओं के अंक देते हैं। वर्तमान "राजा" में 102,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,002,557,529,927 अंक हैं।

PHP बड़े पूर्णांक के साथ अच्छी तरह से खेलना प्रतीत नहीं होता है। जब कोई निश्चित अंक से अधिक जोड़ने की कोशिश करता है तो यह असफल हो जाएगा क्योंकि PHP उन संख्याओं को अनंत के रूप में मानता है।

क्या हास्यास्पद रूप से बड़ी संख्या में काम करने के लिए कुछ गणित पुस्तकालय है? क्या मुझे संख्याओं को तारों के रूप में मानना ​​चाहिए और अपना खुद का लिखना चाहिए?

हम संख्याएं हैं जो 2^20 अंक लंबाई या उससे अधिक समय में हैं। उन्हें सटीक होने की आवश्यकता नहीं है (किसी भी त्रुटि को सामान्य रूप से ऐप की निम्न गुणवत्ता तक पहुंचाया जाता है) और न ही इसे उच्च प्रदर्शन करने की आवश्यकता होती है। मुझे बस कुछ चाहिए जो बहुत अधिक संख्या की अनुमति देता है।

(आप में से जो लोग उत्सुक हैं के लिए, हम हमारे संख्या बादल में संग्रहीत करते हैं, तो भंडारण लागत एक बहुत बड़ा मुद्दा नहीं है।)

+27

'मैं एक पूरी तरह से बेकार फेसबुक ऐप चलाता हूं'। तुम नहीं कहो? क्या कोई अन्य प्रकार उपलब्ध है? – aaronasterling

+1

2^लंबाई में 20 अंक? आप उन संख्याओं से निपट रहे हैं जिनके पास दस लाख से अधिक अंक हैं? आपको भंडारण लागत के बारे में चिंता करना शुरू करना पड़ सकता है। –

+0

"आप में से जो उत्सुक हैं, हम क्लाउड में अपनी संख्याएं स्टोर करते हैं, इसलिए संग्रहण लागत एक बड़ी समस्या नहीं है।" ;) इसके अलावा हम 60 सक्रिय उपयोगकर्ताओं से बात कर रहे हैं। –

उत्तर

9

पीएचपी तैरता का उपयोग करता है, या 32-बिट ints पर हस्ताक्षर किए संख्या स्टोर करने के लिए। स्पष्ट रूप से यह पर्याप्त नहीं है। आप इन बड़ी संख्याओं को स्टोर करने के लिए मनमाने ढंग से सटीक अंकगणित का उपयोग कर सकते हैं। अधिक जानकारी के लिए ईसा पूर्व मठ पर पीएचपी किताब देखें: बड़ी संख्या के साथ काम करने के लिए

http://php.net/manual/en/book.bc.php

5

दो पीएचपी पुस्तकालयों BC Math और GMP हैं।

+2

जीएमपी मुझे संख्याओं को जोड़कर 10^50 तक सीमित कर रहा था। मैं जो कुछ भी चाहता था उसे स्टोर कर सकता था, लेकिन अगर मैं जोड़ने की कोशिश करता तो यह 10^50 पर कैप करेगा। मैं बीसी गणित की कोशिश करूंगा। –