Hallo,
ich habe gerade die Übungsaufgaben zu den Vectoren, Matrizen usw. ge-
macht und bin mir bei der ersten nicht sicher ob sie stimmt.
Aufgabe:
5000 Zufallsvektoren mit Zufallslänge zwischen 0 und 10 addieren und
durch 5000 teilen. Ergebnis sollte bei 0 0 0 liegen.
Mein Code:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <windows.h>
#include "TriBase.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance,
LPSTR lpCmdLine, int nShowCmd) {
tbInit();
const int anz = 5000;
tbVector3 sum(0.0f,0.0f,0.0f);
tbVector3* vector = new tbVector3[anz];
for (int i = 0; i < anz; ++i) {
// Zufallsvector mit Zufallslänge zwischen 0 und 10
vector[i] = tbVector3Random()*tbFloatRandom(0.0f,10.0f);
sum += vector[i];
}
tbWriteToLog("Durchschnitt: ");
sum /= anz;
tbWriteVector3ToLog(sum);
TB_SAFE_DELETE_ARRAY(vector);
tbExit();
}
|
Mein Ergebnis liegt immer bei so -0.2 -0.19 -0.21 mit Länge 0.4.
Stimmt mein Code und wenn, warum ist das Ergebnis nicht näher bei
0 0 0?