读书人

如何随机取多个数

发布时间: 2013-01-07 10:02:24 作者: rapoo

怎么随机取多个数啊
例如如果有1,2,3,......,100个数,要求从中随机取出10个数,不能重复,应该怎么实现啊
[解决办法]
大体思想是:第一次随机产生0到99之间的下标,第二次随机产生0到98之间的下标……依次类推,每次产生到哪个下标就把那个位置上的数“扣出去”……
[解决办法]
可以借助列表,取一个放进去一个,放前先在list中查找是否有,如果有就不添加,继续取
[解决办法]

/C++#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
bool Judge(int a[],int n);//判断是否有重复,没有重复返回true
int main()
{
int num[10];
srand(time(NULL));
for(int i=0;i<10;i++)
{
num[i]=rand()%101;
while(Judge(num,i)==false)
num[i]=rand()%101;
cout<<"num["<<i+1<<"]:"<<num[i]<<endl;
}
}
bool Judge(int a[],int n)
{
for(int i=0;i<n;i++)
if(a[i]==a[n]) return false;
return true;
}

读书人网 >C++

热点推荐