Frage

Ich habe mit einigen herumgespielt Projekt Euler Problem long long Typ Zahlen. Ich bin bestrebt, Kakao und Objektiv-C zu verwenden (ich muss für die Arbeit scharf bleiben), kann aber keinen eleganten Weg finden (lesen: Bibliothek), um diese wirklich großen Zahlen zu bewältigen.

Ich würde gerne GMP verwenden, aber klingt so, als ob es eine vollständige Welt der Verletzung ist, es zu verwenden.

Kennt jemand andere Optionen?

War es hilfreich?

Lösung

Wenn ich du wäre, würde ich zusammenstellen GMP außerhalb von Xcode und nur verwenden gmp.h und libgmp.a (oder libgmp.dylib) In meinem Xcode -Projekt.

Andere Tipps

Versuchen Sie, die Ziffern in Arrays zu speichern.

Obwohl Sie einige neue Funktionen für all Ihre arithmatischen Probleme schreiben müssen, aber so wurde uns gesagt, dass wir es im College tun sollen.

Plus die Geschwindigkeit der Berechnungen war ziemlich verbessert, da die großen Zahlen nicht wirklich groß waren und nicht wirklich Zahlen waren

Sehen Sie, ob es hilft

Grüße

vBigNum in vecLib Implementiert 1024 Bit Gauner (signiert oder unsigniert). Ist das groß genug?

Wenn Sie Matlab (oder etwas in der Nähe) verwenden möchten, können Sie sich meine Implementierung einer großen Ganzzahlform ansehen (VPI) auf dem Dateiaustausch.

Es ist ziemlich einfach. Lagern Sie jede Ziffer separat. Fügt und Subtrahiere sind einfach, implementieren Sie einfach einen Carry -Betrieb. Multiplizungen werden am besten mit Faltungen und dann mit einem Carry durchgeführt. Implementieren Sie die Divide- und Mod -Operatoren, dann einen PowerMod -Betrieb, der für viele PE -Probleme nützlich ist. Die Kräfte sind einfach - gerade wiederholtes Quadrat und Multiplikation, basierend auf der binären Darstellung des Exponenten.

Dadurch können Sie viele PE -Probleme lösen.

Auch ich hatte die helle Idee, einige Euler-Projektprobleme mit Kakao/Objektiv-C zu versuchen, und habe es frustrierend empfunden. Ich habe zuvor Java und vielleicht einige PHP verwendet. Ich habe gepostet Mein genaues Problem in diesem Thread.

Ich habe immer darüber nachgedacht, ein Bibliotheksbetrug für dieses Projekt zu verwenden. Schreiben Sie einfach eine Klasse mit den Dingen, die Sie brauchen. Und haben Sie keine Angst, Malloc und Uint64_t usw. zu verwenden. Nsnumber ist nicht Eine gute Idee in vielen Fällen.

Auf der anderen Seite gibt es viele Probleme, bei denen die offensichtliche Lösung eine enorme bis enorme Anzahl von Zahlen erfordern würde, und der Trick besteht darin, einen Weg zu finden, um das Problem zu lösen, ohne diese großen Zahlen zu verwenden. (Wie ist beispielsweise die Summe der letzten tausend Ziffern von 1.000.000 Faktoren)?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top