【问题标题】:python itertools: How to roll N dice? [duplicate]python itertools:如何掷 N 个骰子? [复制]
【发布时间】:2017-01-16 22:28:39
【问题描述】:

我可以使用如下循环遍历 1、2 或 3 个 6 面骰子的所有组合:

for a in range(1, 7):  # one die
  sum = a
  dosomething(sum)

for a in range(1, 7):  # two dice
  for b in range(1, 7):
    sum = a + b
    dosomething(sum)

for a in range(1, 7):    # three dice
  for b in range(1, 7):
    for c in range(1, 7):
      sum = a + b + c
      dosomething(sum)

如何使用 itertools 对 N dice 执行此操作?

【问题讨论】:

    标签: python itertools


    【解决方案1】:

    这就是itertools.product 的用途。

    for dice in itertools.product(range(1, 7), repeat=N):
        dosomething(sum(dice))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      相关资源
      最近更新 更多