जब मैंने आईआरबी में 3 ** 557 की गणना करने की कोशिश की तो मुझे इस समस्या से मुलाकात हुई। रूबी और मैकरुबी दोनों मेरे मैक (ओएस एक्स 10.8) में स्थापित हैं। और रूबी का संस्करण 1.8.7 है, मैक्रूबी 0.12 (रूबी 1.9.2)। रिब और मैकिरब ने मुझे 3 ** 557 की गणना पर दो अलग-अलग उत्तर दिए। (मैकिरब सही है।)रुबी में एक्सपोनेंटिएशन 1.8.7 गलत जवाब देता है
$ irb
>> 3**557
=> 54755702179342762063551440788945541007926808765326951193810107165429610423703291760740244724326099993131913104272587572918520442872536889724676586931200965615875242243330408150984753872526006744122187638040962508934109837755428764447134683114539218909666971979603
$ macirb
irb(main):001:0> 3**557
=> 57087217942658063217290581978966727348872586279944803346410228520919738045995056049600505293676159316424182057188730248707922985741467061108015301244570536546607487919981026877250949414156613856336341922395385463291076789878575326
और फिर मैंने कुछ बड़ा करने की कोशिश की, उदा। 3 ** 5337, और मुझे इस बार एक ही जवाब मिला।
तो, क्या यह रूबी 1.8.7 में एक बग है, या मुझे एक्सपोनिएशन की गणना करने के लिए एक और तरीका उपयोग करना चाहिए?
रूबी से संबंधित नहीं विशेष रूप से, लेकिन आप को देखने के लिए चाहते हो सकता है [मॉड्यूलर घातांक] (http://en.wikipedia.org/wiki/Modular_exponentiation) परिणाम के साथ आप क्या कर रहे हैं इसके आधार पर। – jli
मेरे पास एक एमआरआई प्री-1.9.3 स्थापित नहीं है, लेकिन यह सही परिणाम देता है। –
मैक का कौन सा सटीक मॉडल आप उपयोग कर रहे हैं? मैं रूबी (1.8.7 पी 358) के उसी संस्करण के साथ अपने मैकप्रो (ज़ीऑन) पर इसे पुन: पेश नहीं कर सकता। न ही मैं 32 बिट्स में चल रहे पुराने 1.8.6 पर जा सकता हूं। –