我正在编制一个程序,其中列出了34个城市,我希望给这些城市中的每个城市一个被选中的概率.
所以我有:
vector<float> vec;
int s;
cin >> s;
srand(s);
for (int k=0; k < 34; k++)
{
float p1= (float)rand()/(float)((unsigned)RAND_MAX+1);
vec.push_back(p1);
}
Run Code Online (Sandbox Code Playgroud)
这样就给了每个城市一个概率.我现在遇到的问题是我想做一个随机数生成器,它将选择其中两个城市.因此,例如city1将有5%,city2为2%,city3,3%等.我如何根据给定的概率随机选择其中两个城市?
我在遗传算法中做到了这一点.为您的城市考虑10个单位的线.现在从0-5单位在线,city1 6-7为city2,8-9为city3.现在从0-9随机选择一个数字.并发现它在哪个城市范围内.