大众信息网

C++ 随机数生成

关注:201  答案:4  手机版
解决时间 2021-02-26 06:38
怎麼生成30个,各不相同的随机数并存入a[i]中,求代码
最佳答案
首先随机生成数,然后和之前所有生成的数比较,如果有相同的,就跳回去重新生成。这样保证没有重复的随机数。
以下是代码片段,复制粘贴到你的程序中即可。经测试成功运行。

srand(time(0)); //如果需要每次生成的值不一样,就加上这行,同时加上头文件time.h
int a[30] = 0;
for(i = 0;i < 30; i++)
{
GetNum:
a[i]=rand()%100;
for(int j = 0; j < i; j++)
{
if(a[i] == a[j])
{
goto GetNum;
}
}
}
全部回答
srand(time(NULL)); for(int i=0;i<30;i++) a[i]=rand()%10000;
srand((unsigned)time(0)); int iArray[30]; for(int i = 0 ; i < 30 ; i++) { while(1) { bool bGet = false; int iNum = rand(); for(int j = 0 ; j < i ; j++) { if(iNum == iArray[j]) { break; } if(j == i - 1) { iArray[i] = iNum; bGet = true; } } if(bGet) break; } }
#include #include #include #include using namespace std; vector rnd( int n ) { srand( (unsigned)time(null) ); //以当前系统时间来实现随机数种子 vector v(n); for(int i=0;i v = rnd( 100 ); //这个100,可以手动输入哦。呵呵。 copy( v.begin(),v.end(),ostream_iterator( cout," " ) ); return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!