循环多个for循环,Python中骰子的所有可能性
Posted
技术标签:
【中文标题】循环多个for循环,Python中骰子的所有可能性【英文标题】:Looping over multiple foor loops, all posibilities of a dice in Python 【发布时间】:2022-01-21 00:40:19 【问题描述】:我想打印滚动 n 个骰子时的所有可能选项。 我知道如何做到这一点,当硬编码 n 数量的 for 循环时,但是有没有一种很好的方法可以做到这一点而不为每个骰子硬编码一个循环?最好没有任何外部库。
这是我对 n = 3 的硬编码解决方案,for 循环需要以某种方式对任何 n 数进行通用化:
dices = 3
a = [1]*dices
for a[0] in range(1,7):
for a[1] in range(1,7):
for a[2] in range(1,7):
print(a)
谢谢!
【问题讨论】:
docs.python.org/3.10/library/itertools.html#itertools.product 【参考方案1】:你也可以递归地解决它。但 itertools.product(由 Thierry Lanthuille 在 cmets 中提出)看起来是更好的选择。
这里是递归方法:
def dices(n, a):
if n == 0:
print(a)
return
for a[n-1] in range(1,7):
dices(n-1,a)
dicesCount = 3
a = [1]*dicesCount
dices(dicesCount, a)
【讨论】:
以上是关于循环多个for循环,Python中骰子的所有可能性的主要内容,如果未能解决你的问题,请参考以下文章