C++抽獎程序?qū)崿F(xiàn)方法
更新時間:2015年07月02日 11:25:16 作者:tianmo2010
這篇文章主要介紹了C++抽獎程序?qū)崿F(xiàn)方法,實例分析了C++隨機數(shù)的生成技巧與抽獎程序的實現(xiàn)方法,需要的朋友可以參考下
本文實例講述了C++抽獎程序?qū)崿F(xiàn)方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
一、int rand()可以生成從[0, 65536)之間均勻分布的隨機數(shù)。
現(xiàn)要求實現(xiàn):有30萬員工,使用rand()寫一個抽獎程序,抽出人100獲獎。
#include <iostream>
#include <set>
using namespace std;
typedef set<int> ISET;
ISET GetPridePersonId(const int num, const int pride_num)
{
int id;
ISET iset;
while (1) {
id = (int)((double)rand() / RAND_MAX * num) % (num - 1);
if (iset.find(id) == iset.end()) {
iset.insert(id);
}
if (iset.size() >= pride_num) {
break;
}
}
return iset;
}
void print(ISET &iset)
{
ISET::iterator iter;
cout<<"item as :\n";
for (iter = iset.begin(); iter != iset.end(); ++ iter) {
cout<<*iter<<"\n";
}
}
int main(int argc, char **argv)
{
const int total_person = 300000;
const int total_pride_person = 100;
ISET iset = GetPridePersonId(total_person, total_pride_person);
print(iset);
return 0;
}
二、主要容易出錯的地方:
①當(dāng)rand()范圍要求擴大的時候,浮點與整形數(shù)之間的強制轉(zhuǎn)換問題。
復(fù)制代碼 代碼如下:
int randId = (int)((double)rand() / RAND_MAX * num);
②STL中set的使用是否非常熟練?
希望本文所述對大家的C++程序設(shè)計有所幫助。
您可能感興趣的文章:
相關(guān)文章
C語言實現(xiàn)酒店客房管理系統(tǒng)課程設(shè)計
這篇文章主要為大家詳細介紹了C語言實現(xiàn)酒店客房管理系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
C++中拷貝構(gòu)造函數(shù)的應(yīng)用詳解
這篇文章主要介紹了C++中拷貝構(gòu)造函數(shù)的應(yīng)用,需要的朋友可以參考下2014-07-07
C 語言實現(xiàn)一個簡單的 web 服務(wù)器的原理解析
這篇文章主要介紹了C 語言實現(xiàn)一個簡單的 web 服務(wù)器的原理解析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11

