C/C++

c++生成指定范围的随机数

位置:首页 > C/C++ > C++提高,2013-08-22
使用C标准库,生成指定范围的,int和float类型的随机数.一共三个函数:voidrandom_seed(intseed);intrandom_int(intmin,intmax);floatran...
使用C标准库,生成指定范围的,int和float类型的随机数.
一共三个函数:
  1. void random_seed(int seed);
  2. int random_int(int min, int max);
  3. float random_float(float min, float max);
#1,用来初始化随机种子

#2,#3,分别用来生成int或float类型数值。第一个参数必须小于第二个参数。


#include 
 
  
#include 
  
   

static unsigned int s_seed = 0;

void random_seed(int seed)
{
	if(!seed) s_seed=time(NULL);
	else s_seed=seed;
}
int random_int(int min, int max)
{
	s_seed=214013*s_seed+2531011;
	return min+(s_seed ^ s_seed>>15)%(max-min+1);
}
float random_float(float min, float max)
{
	s_seed=214013*s_seed+2531011;
	return min+(s_seed>>16)*(1.0f/65535.0f)*(max-min);
}

int main()
{
  /* initialize random seed: */
  random_seed(0);
  
  printf("random_int(20,9393) = %d\n",random_int(20,9393));
  printf("random_float(20.0,9393.0) = %f\n",random_float(20.0f,9393.0f));

  return 0;
}
  
 

TAGS:c++生成随机数

猜你喜欢

NewHot