//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, никогда ничего.
Не используйте использование оператора modulo с генераторами случайных чисел; который использует наименее значимые биты (которые являются почти детерминированными), а не ведущие биты (которые ближе к псевдослучайному). Разделите на шесть и обрезайте до целого числа. –
Я не могу устоять: http://xkcd.com/221/ –
О, черт возьми. Я смеялся. –