标签:random
之前用到的随机数是以时间为种子的,当连续产生的时候,就会出现问题,更改了下。在设置种子的时候加上一个随机数。试了试,感觉还OK。
static unsigned int s_seed ; void Utils::random_seed(int seed) { if(!seed) s_seed=time(NULL); else s_seed=seed; } int Utils::random_int(int min,int max) { s_seed=214013*s_seed+2531011; return min+(s_seed ^ s_seed>>15)%(max-min+1); } float Utils::random_float(float min,float max) { s_seed=214013*s_seed+2531011; return min+(s_seed>>16)*(1.0f/65535.0f)*(max-min); }使用:
Utils::random_seed(Utils::currentTimeMillis() + rand()) ;
标签:random
原文地址:http://blog.csdn.net/c_boy_lu/article/details/44804943