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

来源:互联网 发布:java上传图片到项目中 编辑:程序博客网 时间:2024/06/14 12:43
#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;}

1 0
原创粉丝点击