PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeit messen + Zufallszahlen in C++


Procyon
30.06.2004, 16:26
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

Procyon
30.06.2004, 17:00
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 ;)

Novox
01.07.2004, 14:52
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 ;)

Ray
10.07.2004, 12:38
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*



Copyright © 1999 - 2011 Planet 3DNow!
Rechtliche Hinweise