2010-01-03 7 views
6

उदाहरण के लिए 32 वर्णों से अधिक दो बड़ी संख्याओं को गुणा कैसे करें उदाहरण के लिए 100 गुणा! 122 के साथ! या विभाजित करने और जीतने की सहायता से 11^200 के साथ 22^122, क्या किसी भी शरीर में जावा कोड या सी # कोड है?बहुत बड़े पूर्णांक का तेज़ गुणा

+0

प्रासंगिक भाषाओं के साथ retagged –

+0

गुणा एल्गोरिदम के बारे में पढ़ें: http://en.wikipedia.org/wiki/Multiplication_algorithm – przemoc

+0

"विभाजित करें और जीतें" होमवेयर की तरह लगता है कश्मीर। यदि सही हो तो कृपया पुनः प्रयास करें। –

उत्तर

0

मैंने खुद को लिखा है कि केवल मज़े के लिए इसे पूरा करने के लिए Arrays का उपयोग करता है। मेरा मानना ​​है कि जावा की बिगइंटर वर्ग हालांकि वही काम करता है।

Here सी # में एक उदाहरण है जो आपके लिए उपयोगी हो सकता है।

3

आपको शायद java.math.BigInteger का उपयोग करना चाहिए। यह 2^32 या यहां तक ​​कि 2^64 से अधिक पूर्णांक मानों के प्रतिनिधित्व की अनुमति देता है। बिगइंटर मूल्य अनिवार्य रूप से प्रोग्राम के लिए उपलब्ध स्मृति की मात्रा से सीमित हैं, यानी 32-बिट सिस्टम पर ~ 4 ​​जीबी और 64-बिट सिस्टम के लिए बहुत अधिक उपलब्ध भौतिक + वायरुटल मेमोरी सीमित है।

import java.math.BigInteger; 

class Foo 
{ 
    public static void main(String args[]) 
    { 
     BigInteger bigInteger100Fact = bigFactorial(BigInteger("100")); //where bigFactorial is a user-defined function to calculate a factorial 
     BigInteger bigIntegerBar = new BigInteger("12390347425734985347537986930458903458"); 

     BigInteger product = bigIntegerFact.multiply(bigIntegerBar); 
    } 
} 

संपादित करें: यहाँ एक BigInteger factorial function अगर आप की जरूरत है एक

+0

हाँ, और सी # के लिए इंटेल पर विचार करें, http://www.codeplex.com/IntX/ –

+2

बस ध्यान दें कि बिगइंटर एक निष्क्रिय गुणा एल्गोरिदम का उपयोग कर रहा है ताकि अगर किसी को बड़ी संख्या में तेजी से गुणा करने की आवश्यकता हो, किसी को तीसरी पार्टी लाइब्रेरी का उपयोग करना चाहिए जो करात्सुबा या अन्य उप एन^2 एल्गोरिदम का उपयोग करता है। – Voo