gpt4 book ai didi

c++ - 如何从掷骰子中找到最小值和最大值?

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:54 25 4
gpt4 key购买 nike

我想找出如果放置 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;
}

最佳答案

#include <iostream>

void rollDice(int numOfDice, int numOfSides, int* minRange, int* maxRange) {
*minRange = numOfDice;
*maxRange = numOfDice * numOfSides;
return;
}

int main() {

int minRange;
int maxRange;
int noDice = 3;
int noSides = 6;

rollDice(noDice, noSides, &minRange, &maxRange);

std::cout << "Minimum range for " << noDice << " dice with " << noSides << "sides is: " << minRange << std::endl;
std::cout << "Maximum range for " << noDice << " dice with " << noSides << "sides is: " << maxRange << std::endl;

return 0;
}

首先,你的问题有点错误,一个骰子的最大分数不是 minRange + numOfSides,而是 numOfSides,对于任意数量的骰子,最小分数是 noDice * 1 = noDice,最大分数将是 noDice * noSides。

当您想要计算任意数量的任意面骰子的最小和最大总和时,从函数中检索两个值而不创建数据结构或数组或对象的最佳方法是使用指针。通过使用 & 运算符传递变量地址以存储 minRange 和 maxRange,rollDice 函数可以直接访问用于保存这些变量的内存块并将它们设置为适当的值。

这是我第一次尝试回答问题,希望这是您要找的。

关于c++ - 如何从掷骰子中找到最小值和最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26694810/

25 4 0
文章推荐: c++ - 我如何将堆栈转储到 Arduino 中?
文章推荐: html - 如何定位两个
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com