Я хочу найти минимальное количество или максимальное число, которое я мог бы получить, если бы поставил X количество кубиков и X количество боковых сторон кости. Я знаю, что если я буду только бросать одну кубику, то минимальным будет «minrange», а максимум будет «minrange» + «numOfSides», но если бы я должен был прокатить несколько кубиков с X количеством сторон; как я могу найти минимальное/максимальное число, которое может быть сгенерировано?Как я могу найти минимум и максимум из рулона кости?
double rollDice(int numOfDice, int numOfSides, int divide, int minrange) {
int i = 0;
subtotal = 0;
while (i < numOfDice) {
roll = 0;
roll = minrange + (rand() % numOfSides);
subtotal += roll;
i++;
}
return subtotal/divide;
}
Просто - если у вас есть 'X' кубики, каждая из которых выполняет минимальное значение MIN и максимум MAX, тогда общий минимум равен« X * MIN », а общий максимум равен« X * MAX ». Если у вас классические 6-сторонние кости, у них есть 'MIN = 1',' MAX = 6'. Вы бросаете 3 таких кубика, тогда общий минимум равен «3 * 1 = 3», а общий достижимый максимум равен «3 * 6 = 18'. Или я неправильно понял вопрос? –
@RomanHocke Это имеет смысл, но если я скажу программе бросить 3 кубика, из которых 6 сторон; то все, что мне нужно сделать, это умножить количество сторон на число костей, чтобы достичь максимального значения, но как бы знать, каково минимальное значение, или это всегда будет minrange? – cscx
Вы должны знать, каково минимальное количество на каждой кости. Если каждый кубик имеет минимум «MIN», вы можете свернуть «X * MIN» как минимум. Поэтому, если вы используете классические кубики, минимальное число которых равно числу «1», то минимальный размер, который вы катите с кубиками 'X', должен быть« X * MIN = X * 1 = X'. Представьте себе три кубика в руке. Первые рулоны 1 минимальны, вторая - 1, как минимум, а третий - 1, как минимум, тоже. Что добавляет минимальный бросок из трех. –