You will laught seeing my algo, but it works.
With scientist rng I got numbers but between two numbers ther was not enougth space.
See my code :
int Random(int __Maximum)
{
SYSTEMTIME _St ;
char _szTmp[256] ;
int _iResult ;
GetLocalTime(&_St) ;
wsprintf(_szTmp,"%u%u",_St.wMilliseconds,_St.wSecond) ;
_iResult = atoi(_szTmp) ;
if(_iResult < 0) _iResult *= -1 ;
if(_iResult == 0) _iResult = 24121959 ;
return (_iResult % __Maximum) ;
}
It is base on the LocalTime function.
I need to generate numbers between 1..9, 1..64, 1..625, 1..9072 and 1.. 117649
I spend lot of hours googling, but no result available in my case.
An other idea was to create a timer that increase à variable, I read it and apply a modulo. Finally the first solution was the easier one.
If the result is 0 I set to my birthday date.
If the result is less than 0, I mutiply by -1.
I tried with rand() but not good in my case.
Now you can laught I allow you...