//Generate Food Personality
for(i=0; i<food.size(); i++)
{
srand(time(0));
int randomFood = rand() % 6;
if(randomFood == 1 || randomFood == 3 || randomFood == 5)
{
badFood.push_back(food[randomFood]);
}
else if(randomFood == 0 || randomFood == 2 || randomFood == 4)
{
goodFood.push_back(food[randomFood]);
}
}
cout << "Size of Food Vector: " << food.size() << endl;
cout << "Size of Bad Food: " << badFood.size() << endl;
cout << "Size of Good Food " << goodFood.size() << endl;
randomFood是通過6的隨機數,它取決於該隨機數如何證明發生在食品[]中的隨機數,並把它添加到 的載體。隨機數總是產生1數個
我的問題是,它似乎總是產生一個奇數或偶數。 bad和good.size()總是以6或0打印出來,而不是其他任何東西。
不要在隨機數發生器中使用模運算符;它使用最低有效位(幾乎是確定性的)而不是前導位(更接近於僞隨機)。將其除以6並截斷爲整數。 – 2010-10-05 18:36:57
我無法抗拒:http://xkcd.com/221/ – 2010-10-05 18:39:27
哦,天哪。我笑了。 – 2010-10-05 18:40:16