Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeit messen + Zufallszahlen in C++
Tach erstmal
gibt's ne einfache methode die zeit zu messen (wie lange braucht bubblesort ...) ???
Und wie kriege ich (pseudo-)Zufallszahlen?
THX im voraus ...
Dizzy_Ti
30.06.2004, 16:46
Zeit messen:
double zeit=GetTickCount();
// Tu was
double zeit2=GetTickCount();
double time=zeit2-zeit; // Erg in ms
Zufallszahlen
#include <Math.h>
Randomize();
int zufall=random(10); // Zufallszahlen von 0-9
Tach erstmal
das ist wohl windows-spezifisch, oder?
zumindest geht es genauso in delphi, das ja nur unter win32 läuft ...
Dizzy_Ti
30.06.2004, 17:12
Hi,
GetTickCount ist Windows spezifisch.
Andere Möglichkeit zum Zeit messen die IMO nicht Windows spezifisch ist:
#include <time.h>
clock_t t1,t2;
t1=clock();
// Tu was
t2=clock();
double time=((float)(t2-t1)/CLOCKS_PER_SEC);
PseudoReal
30.06.2004, 18:21
und bei der rand() funktion sollte man immer vorher noch die srand() funktion aufrufen.
weil sonst immer die gleichen zufallszahlen kommen, ist so habe ich getestet :)
i_hasser
30.06.2004, 23:59
Original geschrieben von Dizzy_Ti
Hi,
GetTickCount ist Windows spezifisch.
Andere Möglichkeit zum Zeit messen die IMO nicht Windows spezifisch ist:
#include <time.h>
clock_t t1,t2;
t1=clock();
// Tu was
t2=clock();
double time=((float)(t2-t1)/CLOCKS_PER_SEC);
Die Geschichte ist GNU und POSSIX kompatibel, und damit fährst du auch am besten.
PS woher kenn ich den Code nur *kopfkratz
;)
Dizzy_Ti
01.07.2004, 11:52
@intel_hasser
Sry, wusste nicht,dass du ein Patent auf den Code hast ;)
Original geschrieben von intel_hasser
POSSIX
POSIX (Portable Operating System Interface for Unix), nicht POSSIX.
i_hasser
01.07.2004, 20:10
Original geschrieben von Dizzy_Ti
@intel_hasser
Sry, wusste nicht,dass du ein Patent auf den Code hast ;)
Ach keine Angst... darum wird sich dann mein Patentanwalt kümmern *chatt*
@Novox
hmmm ja. Deutsche Sprache eben ;)
Apropo Zufallszahlen:
Anforderung war, 16 Bit Zufallszahlen (ohne 0) möglichst billig zu erzeugen.
Folgender Code erfüllt das:
static WORD RandValue = 0;
WORD OS_Rand (void)
{
RandValue = (WORD) ((RandValue * 214013L + 2531011L) >> 16);
return (WORD) ((RandValue==0) ? 42 : RandValue );
}
Die einzige Funktion eines kleinen Embedded OS für ISDN-Telefone, welche unter gewissen Umständen die Antwort auf die große Frage "nach dem Leben, dem Universum und allem" zurück liefert.
Das OS nennt sich Kernel42. *buck*
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.