Beste Bignum-Bibliothek zum Lösen von Project Euler-Problemen in C++? [closed]

Lesezeit: 3 Minuten

Beste Bignum Bibliothek zum Losen von Project Euler Problemen in C closed
Khaled Alshaya

Ich bin noch Student und finde das Projekt Euler sehr lustig.

manchmal erfordert die Frage Berechnungen, die größer sind als primitive Typen. Ich weiß, dass Sie es implementieren können, aber ich bin zu faul, dies zu tun,

Also habe ich einige Bibliotheken ausprobiert,

KARTE :: sehr gute Leistung, aber es bietet nur große Gleitkommazahlen, mit der Möglichkeit zu prüfen, ob es sich um eine Ganzzahl handelt. sehr gut, um Eingaben zu akzeptieren, aber unangenehm, um Ausgaben bereitzustellen, und kompiliert wie von Zauberhand mit Visual C++ 2008 Express.

bigint :: ein kleines, aber in vielen Teilen ein Reengineering. Sehr einfach zu bedienen, aber sehr begrenzte Leistung und im Vergleich zu anderen sehr langsam. nur große ganze Zahlen.

ttmath :: die schönste, die ich bisher ausprobiert habe!, nur ein paar Dateien einzufügen und Sie haben unglaubliche Kraft / Einfachheit. Kompiliert wie von Zauberhand in Visual C++ 2008 Express. Es ist schnell, weil es Nummern mit fester Länge bereitstellt. Es wird mit Metaprogramming in C++ erstellt. Der einzige Nachteil, den ich sehe, ist, dass Zahlen zur Laufzeit nicht beliebig lang sind, aber Sie können beim Schreiben von Code sehr einfach 1024K-Zahlen haben.

ttmath::UInt<1024 * 1024> reallyHugeUnsignedInteger;

Es bietet drei Typen: signiert, unsigned und float.

Ich habe versucht, gmp unter VC2008 Express zu kompilieren, bin aber gescheitert! Ich weiß, es ist das Beste, aber nirgendwo leicht zu kompilieren für einen Anfänger unter VC2008 Express, ich freue mich auch, wenn Sie auf ein Tutorial zum Kompilieren von gmp unter VC hinweisen.

BEARBEITEN :: Wenn Sie wissen, wie man gmp mit VC 2008 kompiliert, erklären Sie es mir bitte und erhalten Sie das Kopfgeld 🙂

EITD :: Es scheint, dass ich nicht die richtigen Begriffe verwendet habe, also hier ist das magische GMP für Windows! funktioniert mit VC 2008 🙂 MPIR

  • Hinweis: Möglicherweise benötigen Sie eine Bignum-Bibliothek, um einige Probleme zu lösen, aber die meisten Euler-Probleme benötigen sie nicht wirklich. Wenn Sie eine sehr große Anzahl von Immobilien finden müssen, ist es normalerweise sehr ineffizient, sie wirklich zu berechnen, um die Immobilie zu finden. Oft müssen Sie das Problem analysieren und eine bessere Lösung finden. Wenn Sie beispielsweise die Anzahl der Nullen in 1000! ermitteln müssen, berechnen Sie den tatsächlichen Wert von 1000! wäre eine sehr ineffiziente Lösung.

    – Igor Krivokon

    26. Juni ’09 um 3:56

  • guter Punkt, aber ich bekomme nicht immer die optimale Lösung 🙂

    – Khaled Alshaya

    26. Juni ’09 um 4:06

  • @Igor: Wenn die ineffiziente Lösung in weniger als einer Sekunde ausgeführt wird und das Schreiben einige Minuten dauert, bin ich nicht an der effizienten Lösung interessiert. Ja, ich habe einige Euler-Fragen gestellt, und ja, es gab Fälle, in denen das Einwerfen von GMP auf das Problem sofort gelöst wurde. 1000! weniger als 10 000 Binärziffern beträgt, ist die Berechnung auf einem PC wahrscheinlich ziemlich trivial. Es ist sicherlich schneller, als die Anzahl der nachgestellten Nullen in 1000 zu berechnen! von Hand (obwohl das zugegebenermaßen auch nicht so schwierig ist).

    – Steve Jessop

    26. Juni ’09 um 10:11

  • Guter Punkt, Igor & Steve! Ihre Kommentare ergänzen sich sehr gut.

    – Vietnam

    14. April ’10 um 2:20

Hier sind ein paar Links zu GMP und Visual Studio 2008:

GMP-Installationshilfe bei CodeGuru

GMP-Kompilierungsleitfaden am Rande von Nirgendwo (dieser sieht wirklich gründlich aus)

… oder einfach PARI/GP ausprobieren http://pari.math.u-bordeaux.fr/

Beste Bignum Bibliothek zum Losen von Project Euler Problemen in C closed
clemahieu

GMP. Einfache API, gibt es schon immer.

Edit: Oh, das hast du versucht. Ich würde es wirklich noch einmal versuchen, es ist das Beste.

  • Wie gesagt, ich habe es nie unter VC zum Laufen gebracht 🙁

    – Khaled Alshaya

    26. Juni ’09 um 3:59

  • Vorschlag: zum Nutzen anderer SO-Leser bitte beim nächsten Mal Links hinzufügen. Ich tue es jetzt für dich.

    – jwfearn

    26. Juni ’09 um 14:53

.

482360cookie-checkBeste Bignum-Bibliothek zum Lösen von Project Euler-Problemen in C++? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy