python itertools:如何掷 N 个骰子?
python itertools: How to roll N dice?
我可以使用如下循环遍历 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 个骰子执行此操作?
这就是 itertools.product
的用途。
for dice in itertools.product(range(1, 7), repeat=N):
dosomething(sum(dice))
我可以使用如下循环遍历 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 个骰子执行此操作?
这就是 itertools.product
的用途。
for dice in itertools.product(range(1, 7), repeat=N):
dosomething(sum(dice))