lange Kommazahlen
-
den algorithmus hab ich ja schon (1/12)+(1/22)+(1/32)...=pi2/6
mein problem ist halt das er z.b nicht 1.53977 / 0.1666666 rechnen kann und vor allem die langen zahlen nicht kann. Das mit rechenleistung lassen wir mal ausen vor das projekt ist nur zum lernen
Eure antwort für lange zahlen war GMP nur weiß ich nicht wie ich das eibinde wie der code aussehen muss verstehe ich ja (glaub ich) aber wenn ich eingebe :#include "gmp.h" kommt logischer weise datei nicht gefunden, ich find sie ja noch nichtmal so bei den gedownloadeten daten, und wenn ich sie hätte wüssete ich auch nicht wie ich sie ins projekt eibinde
-
Hotspott schrieb:
den algorithmus hab ich ja schon (1/12)+(1/22)+(1/32)...=pi2/6
mein problem ist halt das er z.b nicht 1.53977 / 0.1666666 rechnen kann und vor allem die langen zahlen nicht kann. Das mit rechenleistung lassen wir mal ausen vor das projekt ist nur zum lernen
Eure antwort für lange zahlen war GMP nur weiß ich nicht wie ich das eibinde wie der code aussehen muss verstehe ich ja (glaub ich) aber wenn ich eingebe :#include "gmp.h" kommt logischer weise datei nicht gefunden, ich find sie ja noch nichtmal so bei den gedownloadeten daten, und wenn ich sie hätte wüssete ich auch nicht wie ich sie ins projekt eibinde
Also wieso du sie bei den dlten Sachen nicht findet, weiss ich auch nicht, aber du müsstest sie in den Projektordner tuen, in dem sich die .cpp Datei deines Projektes befindet.
Bisl OTT : Netter Artikel zur Darstellung von Pi : http://de.wikipedia.org/wiki/Vietas_Produktdarstellung_der_Kreiszahl_Pi
-
mhh.. okey mit der Datei schau ich mal ob ich die noch woanders bekommen und miene rechnung funktioniert super habs bis 3,14159 geschaft weiter geht die long double nicht
-
abs bis 3,14159 geschaft weiter geht die long double nicht
Das halte ich für ein Gerücht
-
so habs geschaft aber wie gib ich den meinen variablen einen wert (int)?
*edit:
wiso gerücht ich habs ja
??
http://marcel.patzsch.de/Datein/pi.exe
der beweis
-
Gerücht weil long double sicherlich wesentlich länger als 3,14159 werden kann.
-
compilier mal folgenden Code, dann siehst du, was wir meinen:
#include <cmath> #include <iostream> #include <iomanip> #include <limits> int main() { long double pi = std::acos(-1.L); std::cout<<std::setprecision(std::numeric_limits<long double>::digits10)<<pi; }
-
krümelkacker schrieb:
Außerdem sind 3 Billionen = 3.000.000.000.000. Für 3 Billionen Dezimalstellen brauchst Du also etwa 1,13 Terabytes Speicher, nur um eine solche Zahl darstellen zu können, und noch viel mehr, wenn Du damit rechnen willst.

wer rechnet bei sowas denn mit dezimalstellen :p dürften bei 'ner 2^32-Basis unter 4 GB sein.
-
ahh... okey danke
komm jetzt noch ein bisschen weiter.
-
blubbblubb schrieb:
krümelkacker schrieb:
Außerdem sind 3 Billionen = 3.000.000.000.000. Für 3 Billionen Dezimalstellen brauchst Du also etwa 1,13 Terabytes Speicher, nur um eine solche Zahl darstellen zu können, und noch viel mehr, wenn Du damit rechnen willst.

wer rechnet bei sowas denn mit dezimalstellen :p dürften bei 'ner 2^32-Basis unter 4 GB sein.
3 Billionen Stellen Genauigkeit lassen sich auch in Binärdarstellung nicht in 4GB pressen. 1 Byte reicht für mehr als 2, aber weniger als 3 Dezimalstellen, binär kodiert (Es sei den, du jagst noch irgendwelche Komprimierungsalgorithmen drüber).
-
asc schrieb:
3 Billionen Stellen Genauigkeit lassen sich auch in Binärdarstellung nicht in 4GB pressen. 1 Byte reicht für mehr als 2, aber weniger als 3 Dezimalstellen ...
Vielleicht hat er ja 4 GB RAM oder mehr oder er lagert Zwischenwerte auf die Festplatte aus? Machbar ist alles mit dem richtigem Algorithmus und wenn man beherrscht, was System und Compiler verkraften.
Die Frage bleibt etwas für Mathe-Freaks. Für mich ist das nichts!

daddedu! :p
-
asc schrieb:
blubbblubb schrieb:
krümelkacker schrieb:
Außerdem sind 3 Billionen = 3.000.000.000.000. Für 3 Billionen Dezimalstellen brauchst Du also etwa 1,13 Terabytes Speicher, nur um eine solche Zahl darstellen zu können, und noch viel mehr, wenn Du damit rechnen willst.

wer rechnet bei sowas denn mit dezimalstellen :p dürften bei 'ner 2^32-Basis unter 4 GB sein.
3 Billionen Stellen Genauigkeit lassen sich auch in Binärdarstellung nicht in 4GB pressen. 1 Byte reicht für mehr als 2, aber weniger als 3 Dezimalstellen, binär kodiert (Es sei den, du jagst noch irgendwelche Komprimierungsalgorithmen drüber).
Habe ich oben doch schon vorgerechnet. Jedoch habe ich oben versehentlich mit englischen Billionen gerechnet (habs einfach in Google getippt). Wenn man diesen fehlenden Faktor 1000 berücksichtigt, kommt man auf rund 1.3 TB.
Rechnung: log(10)/log(2)*3 Billionen gibt Zahl der Bits.
-
fals sich hier jemand mit gmp auskännt...
wie gib ich den einer mpq-variable einen int oder double wert?
-
ich benutzte mpir, es ist eine sogenannte windows port für gmp und es ist extra für visual studio gedacht
unter dem link wird wie ich finde einfach erklärt wie man es unter windows und visual studio 2008 (ich glaube, ich habs mit 10 gemacht) zum laufen bringen kann
http://www.exploringbinary.com/how-to-install-and-run-gmp-on-windows-using-mpir/unten auf der seite ist ein beispiel wie du es machen kannst
-
das funktioniert bei mir nicht da ich visual express 2010 habe

-
dann installier dir nochmal die 2008 version, so hab ich das auch gemacht fällt mir grad so ein. das ist dann kompatiebel mit der 2010 version