您的位置:首页 > 编程语言 > C语言/C++

bitset应用---产生1万个不重复的随机数

2015-11-29 14:43 316 查看
#include<iostream>
#include<fstream>
#include<ctime>
#include<bitset>

using namespace std;

const unsigned int max_num=20000;
const unsigned int max_count=10000;
int main()
{
unsigned int i=0;

bitset<max_num+1> bit;

//以下向磁盘文件写入数据
ofstream out_ran;
out_ran.open("F:\\gz\\random.txt",ios::out);//以输出方式打开文件,如果文件不存在,则新建文件
//如果已有此名字的文件,则将其原有内容全部清除
if(out_ran.fail())
{
cout<<"打开文件失败!"<<endl;
exit(1);
}

srand((unsigned)time(NULL));
for(int j=0;j<max_count;)
{
i=rand()%max_num;

if(bit[i]==0)//判断数i是否已写入
{
bit.set(i,1);
out_ran<<i<<" ";//向磁盘文件写入max_count个[0,max_num)区间不重复的随机数
j++;
}
}

for(int j=0;j<max_num;j++)//输出排序后的随机数
{
if(bit[j]==1)
{
cout<<j<<" ";
}
}
cout<<endl;

out_ran.close();//关闭磁盘文件

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ bitset