我想找到最小數量或最大數量,如果放入X數量的骰子和X數量的骰子邊,我可能會收到最小數量或最大數量。我知道如果我只擲一個骰子,那麼最小值就是「minrange」,最大值是「minrange」+「numOfSides」,但是如果我擲出多個骰子,我如何找到可能產生的最小/最大數量?如何從骰子滾動中找到最小值和最大值?
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',那麼總的最小值是'X * MIN',總的最大值是'X * MAX'。如果你有經典的6面骰子,它有'MIN = 1','MAX = 6'。你擲出3個這樣的骰子,那麼總的最小值是'3 * 1 = 3',總的可達到的最大值是'3 * 6 = 18'。或者我誤解了這個問題? – 2014-11-02 00:43:31
@RomanHocke這是有道理的,但如果我確實告訴程序要擲出3個骰子,其中有6個面;那麼我所要做的就是將邊的數量乘以骰子的數量以達到最大值,但它如何知道最小值會是多少,還是總是最小值? – cscx 2014-11-02 00:51:37
你必須知道,每個骰子的最小數字是多少。如果每個骰子都有最小值「MIN」,那麼你可以將'X * MIN'滾動到最小。因此,如果您使用經典的骰子,其最小可滾動數字爲'1',那麼您用'X'擲骰滾動的最小值必須是'X * MIN = X * 1 = X'。試想一下你手中的三顆骰子。第一個滾筒1最小,第二個滾筒至少滾動1,第三個最小滾動1。這增加了最小三卷。 – 2014-11-02 01:00:13