C++抽奖程序实现方法

2020-01-06 13:08:56刘景俊
易采站长站为您分析C++抽奖程序实现方法,实例分析了C++随机数的生成技巧与抽奖程序的实现方法,需要的朋友可以参考下    

本文实例讲述了C++抽奖程序实现方法。。具体实现方法如下:

一、int rand()可以生成从[0, 65536)之间均匀分布的随机数。

现要求实现:有30万员工,使用rand()写一个抽奖程序,抽出人100获奖。
 

  1. #include <iostream>   #include <set>  
  2. using namespace std;   typedef set<int> ISET;  
  3. ISET GetPridePersonId(const int num, const int pride_num)   {    
  4.   int id;     ISET iset;    
  5.   while (1) {        id = (int)((double)rand() / RAND_MAX * num) % (num - 1);  
  6.      if (iset.find(id) == iset.end()) {          iset.insert(id);  
  7.      }        if (iset.size() >= pride_num) {  
  8.        break;        }       
  9.    }         return iset;  
  10. }   void print(ISET &iset)  
  11. {     ISET::iterator iter;  
  12.   cout<<"item as :n";     for (iter = iset.begin(); iter != iset.end(); ++ iter) {  
  13.     cout<<*iter<<"n";     }  
  14. }   int main(int argc, char **argv)   
  15. {     const int total_person = 300000;  
  16.   const int total_pride_person = 100;     ISET iset = GetPridePersonId(total_person, total_pride_person);