C++随机数函数复习

与随机数相关的函数

函数一:int rand(void)

srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX0x7fff)间的随机整数。

函数二:void srand(unsigned seed)

参数seedrand()的种子,用来初始化rand()的起始值。srand((unsigned int)time(0)).



生成0到n-1之间的随机数

//0到n-1的随机数
int random(int n)
{
	if(n==0)
		return 0;
	return rand()%n;
}


生成a到b之间的随机数

//a到b之间的随机数
int random(int a,int b)
{
	int area=b-a+1;
	return (int)(area*rand()/(1.0*RAND_MAX)+a);
}


生成n个0到n-1的不重复的随机数(或者)无序输出有序的0到n-1的数组

//乱序输出不重复的0到n-1之间的数
void Random(int n)
{
	int* a =new int[n];
	for(int i=0;i<n;i++)
	{
		a[i]=i;
	}

	for(int i=n-1;i>1;i--)
	{
		int index=random(i-1);
		int temp=a[index];
		a[index]=a[i];
		a[i]=temp;
	}

	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<endl;
	}
}


自己对C++的随机数的使用还很不熟悉,以此作为笔记,或许继续补充抓狂

posted @ 2012-09-26 15:32  Leeforall  阅读(172)  评论(0编辑  收藏  举报