1e9999999999999999999999999999999
में आर में प्रवेश करते समय, आर लटकता है और जवाब नहीं देगा - इसे समाप्त करने की आवश्यकता है।संख्या 1e9999 क्यों है ... (31 9 एस) आर में समस्याएं पैदा करता है?
ऐसा लगता है कि यह 3 अलग-अलग कंप्यूटर, ओएस (विंडोज 7 और उबंटू) में होता है। यह रुस्टूडियो, आरजीईई और आरस्क्रिप्ट में होता है।
यहाँ और अधिक आसानी से संख्या उत्पन्न करने के लिए कुछ कोड है:
boom <- paste(c("1e", rep(9, 31)), collapse="")
eval(parse(text=boom))
अब स्पष्ट रूप से यह एक व्यावहारिक समस्या नहीं है। मुझे इस परिमाण की संख्या का उपयोग करने की आवश्यकता नहीं है। यह जिज्ञासा का सिर्फ एक सवाल है।
मजे की बात है, अगर आप 1e9999999999999999999999999999998
या 1e10000000000000000000000000000000
(जोड़ सकते हैं या बिजली से एक घटाना) प्रयास करने पर आपको Inf
और 0
क्रमशः मिलता है। यह संख्या स्पष्ट रूप से किसी प्रकार की सीमा है, लेकिन यहां और क्यों के बीच?
मैं माना जाता है कि यह हो सकता है:
- एक चल बिन्दु समस्या है, लेकिन मैं वे 1.7977e308 पर बाहर अधिकतम लगता है, लंबे समय से प्रश्न में नंबर से पहले।
- 32-बिट पूर्णांक वाले एक समस्या, लेकिन 2^32 42 9 4 9 672 9 6 है, जो प्रश्न में संख्या से बहुत छोटा है।
- वास्तव में अजीब। यह मेरा प्रमुख सिद्धांत है।
संपादित करें: नवीनतम रूप से 2015-09-15 तक, यह अब आर को लटका देता है। उन्होंने इसे पैच किया होगा।
प्रमुख सिद्धांत से प्यार करें! वैसे - यह भी मेरे साथ होता है। शायद एक स्मृति बात? –
यहां तक कि बेहतर: 'बूम <- पेस्ट (सी (" 10^", प्रतिनिधि (9, 31)), पतन =" ") 'काम करता है: पी – nico
यह दिलचस्प है। ऐसा लगता है कि '1e9 ...' बहुत अच्छी तरह से काम नहीं करता है, लेकिन '1^9 ... 'ठीक काम करता है। –