00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "Random.h"
00010
00011 #include <stdlib.h>
00012 #include <time.h>
00013
00014 unsigned char Random::ms_randArray[];
00015
00016
00017
00018
00019 void
00020 Random::init() {
00021 srand( static_cast<unsigned>(time(NULL)) );
00022 for (int i = 0; i < ARRAY_SIZE; ++i) {
00023 ms_randArray[i] = randomInt(256);
00024 }
00025 }
00026
00027
00028
00029
00030
00031 int
00032 Random::randomInt(int bound)
00033 {
00034 if (bound == 0) {
00035 return 0;
00036 }
00037 return rand() % bound;
00038 }
00039
00040
00041
00042
00043 double
00044 Random::randomReal(double bound)
00045 {
00046 return bound * rand() / (RAND_MAX + 1.0);
00047 }
00048
00049
00050
00051
00052
00053 unsigned char
00054 Random::aByte(unsigned int index)
00055 {
00056 return ms_randArray[index % ARRAY_SIZE];
00057 }
00058