Этот заголовочный файл создает вектор размера в зависимости от количества кубиков. Требуется количество рулонов (rollsN), количество кубиков (numDice) и количество сторон на кости (numSides --- fixed to 6). Я думаю, проблема в первом цикле. Он будет работать по назначению, если он установлен на одну кубик, но заканчивается с ошибкой вне диапазона при применении двух кубиков.генератор случайных чисел для одной или двух кубиков
void randomNum(const int rollsN, int numDice, int numSides)
{
//Vector will hold an extra value (starts at 0, not 1).
vector<int> numVect((numDice*numSides) + 1);
//Starts a randomizer based on time
srand(time(0));
//provides random values for every possible result of the die
for(int i = 0; i < rollsN; i++)
{
int temp = 0; //holds the side of the dice that is chosen... or the sum of the two dice that are rolled
for(int j = 0; j < numDice; j++)
{
temp += (rand() % (numDice*numSides) + 1);
}
numVect.at(temp) += 1;
}
//prints how many times the die landed on that value
cout << endl << "RANDOMIZED RESULTS " << endl;
for(int i = 1; i <= (numDice*numSides); i++)
{
cout << i << " ----- " << numVect[i] << endl;
}
cout << "~~~~~~~~~~~~~~~~~~~~~~~" << endl << "Histogram" << endl;
}
Не думаете ли вы 'numVect' должны быть рассчитаны на количество кубиков раз количество рулонов? Я не вижу, какое количество сторон имеет к этому отношение .... –
'srand (time (0));' должен выполняться * один раз и только один раз * обычно при запуске программы. – paxdiablo