Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <iostream> #include <math.h> #include <ctime> #include <string> using namespace std; int main () { double b = 0.4; for ( int i = 10000; i < 4294967295; i++) { pow (i, b); } //pow (1000000000000000000000.0, b); cout << "Ende 1" << endl; double t1 = clock () / CLOCKS_PER_SEC; cout << t1 << endl; for ( int i = 0; i < 4294967296; i++) { pow (i, b); } cout << "Ende 2" << endl; double t2 = clock () / CLOCKS_PER_SEC; cout << t2 << endl; } |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Außerdem würde mich gerne interressieren, wie denn die Algorithmen der Standardbibliothek zur Berechnung von beliebigen Potenzen aussehen.
C-/C++-Quelltext |
|
1 2 3 4 |
float pow(float base, float exponent) { return exp(log(base) * exponent); } |
Allgemein bin ich immer an solchen Algorithmen (auch für Logarithmen, Sinus etc. ..) interressiert, gibt es allgemein eine Quelle für sowas?
Die rein mathematischen würden mir schon reichen, am Code schreibe ich auch gerne selber rum.
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »dot« (31.08.2011, 13:07)
Arg, hab ich ganz vergessen.Zitat
Ich würde sagen da fehlt Dir scheinbar das Wissen über Deine Datentypen. Schau einfach mal nach welche Zahl in diesen int passt (denn ich gehe mal von 32 Bit aus), dann wird ganz schnell klar wie oft die Schleifen eigentlich laufen.
Ok, dankeZitat
Schau dir mal das an: http://de.wikipedia.org/wiki/Taylorreihe. Bzw. schau einfach mal nur hier, um zu sehen wie man z.B. die Exponentialfunktion berechnen kann. Die Kernaussage ist, dass man beliebige Funktionen durch eine unendliche Reihe darstellen und damit beliebig genau berechnen kann. Auch wenn man es dann nicht unbedingt wirklich so macht...
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Rexona for men« (31.08.2011, 13:43)
256^4 = 4294967296, würd dann passen, schade dass ein long bei mir genauso groß ist
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> using namespace std; int main () { int Maxa=4294967295; int Maxb=4294967296; cout << Maxa << endl; cout << Maxb << endl << endl; cout << ((0<Maxa) ? "True" : "False" ) << endl; cout << ((1000<Maxb)? "True" : "False" ) << endl << endl; cout << ((0<4294967295) ? "True" : "False" ) << endl; cout << ((1000<4294967296)? "True" : "False" ) << endl << endl; system("Pause"); } |
Zitat
Basically, there are only 10 types of people in the world. Those who know binary, and those who don't.
Aber "long long" bzw. "__int64" haben einen größeren Wertebereich.Zitat
rg, hab ich ganz vergessen.
256^4 = 4294967296, würd dann passen, schade dass ein long bei mir genauso groß ist
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »foreach« (31.08.2011, 15:26)
Ups, hab ich glatt vergessenZitat
256^4 (= 2^32) ist zwar die Anzahl aller möglichen Kombinationen bzw die Anzahl aller verschiedenen Zahlen die dargestellt werden können, aber es ist nicht das Maximum:
ein int stellt Zahlen im positiven und im negativen dar, daher braucht es die hälfte der Zahlen im negertiven (2^32/2=2^31) und die 0 ist auch eine Zahl, daher ist das Maximum 2^31-1.
Danke, gut dass es sowas auch gibtZitat
Aber "long long" bzw. "__int64" haben einen größeren Wertebereich.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Der Rechner braucht vermutlich 0 Sekunden weil der Compiler die Schleife wegoptimiert hat.
Werbeanzeige