掷六面骰子 100 次 return 与掷一次 100 面骰子的价值相同吗? [Python]

Is rolling a six sided dice 100 times return the same value as rolling a 100 sided die once? [Python]

所以我在 python 中创建了一个函数,它根据用户输入模拟掷骰子。我有 2 个版本的代码,一个使用循环,一个是纯数学(我不确定是否正确)。

# Loop
def simulate_dice_loop(num, sides):
    result = 0
    while num > 0:
      x = random.randint(1, sides)
      result += x
      num -= 1
    return result
# Math
def simulate_dice_math(num, sides):
    max = num * sides
    result = random.randint(1, max)
    return result

我非常怀疑数学是否正确,尤其是对于较大的数字。 loop dice roll 倾向于保持在最大值的一半左右。然而,math 往往会一直波动,有时甚至会达到最大值的 90%——这在正常情况下可能极不可能。

...请帮助我如何改进 math 一个,因为循环往往需要更长的时间,数字越大——同时,为了满足我对这个问题的好奇心。谢谢^^

因为对于数学一,最大的机会 (num = 100,side = 6) 是 1/600 而对于循环一,它是 (1/6) **100(大约 1.5306467e- 78 低了很多倍,如果我错了请纠正我)。

为了缩短时间(我假设您正在改进第一个循环),您可以使用列表理解 (sum([random.randint(1,side) for i in range(num)]))