उदाहरण के लिए 32 वर्णों से अधिक दो बड़ी संख्याओं को गुणा कैसे करें उदाहरण के लिए 100 गुणा! 122 के साथ! या विभाजित करने और जीतने की सहायता से 11^200 के साथ 22^122, क्या किसी भी शरीर में जावा कोड या सी # कोड है?बहुत बड़े पूर्णांक का तेज़ गुणा
उत्तर
मैंने खुद को लिखा है कि केवल मज़े के लिए इसे पूरा करने के लिए Arrays का उपयोग करता है। मेरा मानना है कि जावा की बिगइंटर वर्ग हालांकि वही काम करता है।
Here सी # में एक उदाहरण है जो आपके लिए उपयोगी हो सकता है।
Here's some integer multiplication algorithms
Here's a class library for numbers
यह बड़े पूर्णांक गुणा करने के लिए Karatsuba और Schonhage-Strassen एल्गोरिदम भी शामिल है।
आपको शायद 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 अगर आप की जरूरत है एक
हाँ, और सी # के लिए इंटेल पर विचार करें, http://www.codeplex.com/IntX/ –
बस ध्यान दें कि बिगइंटर एक निष्क्रिय गुणा एल्गोरिदम का उपयोग कर रहा है ताकि अगर किसी को बड़ी संख्या में तेजी से गुणा करने की आवश्यकता हो, किसी को तीसरी पार्टी लाइब्रेरी का उपयोग करना चाहिए जो करात्सुबा या अन्य उप एन^2 एल्गोरिदम का उपयोग करता है। – Voo
java.lang.BigInteger Karatsuba और Toom-कुक का उपयोग करता है के Here is a patched version:
And here is a Java class कि का उपयोग कर BigIntegers गुणा कर सकते हैं Schönhage-Strassen:
प्रासंगिक भाषाओं के साथ retagged –
गुणा एल्गोरिदम के बारे में पढ़ें: http://en.wikipedia.org/wiki/Multiplication_algorithm – przemoc
"विभाजित करें और जीतें" होमवेयर की तरह लगता है कश्मीर। यदि सही हो तो कृपया पुनः प्रयास करें। –