我试图找到一种方式来显示所有的安排,n蓝色硬币和m红色硬币编程。我知道答案是n+mcn,但我想让电脑显示所有n+mcn的排列。澄清一下,如果n和m都是2,计算机应该给出的输出是:["bbrr", "brbr", "brrb", "rbbr", "rbrb", "rrbb"]
。另外,如果可能的话,代码应该是Python的。如果你没有Python,它仍然可以工作,因为我懂很多语言。我试过使用itertools,但它不起作用,因为每一个红色硬币被视为不同的。我尝试了很多关于Python的可分辨性的研究,但什么也没有发现。我们将不胜感激。你知道吗
Tags:
这里是Haskell中的一个基本递归解决方案。你知道吗
itertools
包包含您所要求的内容。但是,它会将相同的项视为独立的实体,因此我们可以使用set()
来清除重复项为此我们创建一个递归函数
f(0,0,currentStr)=当前str
f(n,m,currentStr)=f(n-1,m,currentStr+“b”)和f(n,m-1,currentStr+“r”)
相关问题 更多 >
编程相关推荐