关于随机函数的问题
如何产生随机数但是不重复呢?作为一个子函数要调用,要能返回随机数。
int intest()
{
srand( (unsigned)time(NULL) );
return (rand() %num);
}
这个老有重复的,求指教。
#include<time.h> #include<stdio.h> #include<stdlib.h> #define num 100 int intest() { return (rand() %num); } int main(){ srand( (unsigned)time(NULL) ); for(int i=100;--i;printf("%d\n",intest())); return 0; }
/* 函数功能:产生无重复随即数 int a[] 保存随即数数组 int num 数组大小 int max 随机数上限 int min 随即数下线 马甲:萝卜头 QQ:32493835 */ void norand(int a[],int num,int max,int mim) { int i,j,temp; randomize(); a[0]=rand()%(max+1-mim)+mim; for(i=1;i<num;) { temp = rand()%(max+1-mim)+mim; for(j=0;j<i;j++) { if(temp==a[j]) break; } if(j>=i) { a[i]=temp; i++; } } }