【发布时间】:2015-04-30 06:40:04
【问题描述】:
例如,我有一个奖品列表,对于每个奖品,有一个相对比率常数,表示获得它的机会,如下面的代码所示:
vector<pair<string,int> > prizeBox;
prizeBox.push_back(make_pair("toy car",100));
prizeBox.push_back(make_pair("football",50));
prizeBox.push_back(make_pair("book",50));
prizeBox.push_back(make_pair("cash 1000",10));
prizeBox.push_back(make_pair("cash 5000",5));
prizeBox.push_back(make_pair("free expensive lunch",2));
prizeBox.push_back(make_pair("free expensive dinner",2));
prizeBox.push_back(make_pair("special big price",1));
在上面的代码中,“玩具车”有 100/(100+50+50+10+5+2+2+1) 的几率获得。我知道 rand() 可以用来获取随机数,但是在这种情况下我该如何使用它呢?
(另外我不相信我需要一个添加 100 个“玩具车”、50 个“足球”等的新向量来做到这一点......)
【问题讨论】:
标签: c++