我如何才能找到路数的数字序列(可能含有类似物品)可以重新排列,使一些不放在同一个地方,因为它或它的类似号码被放置。查找方式的顺序可以重新排列数量
例如,[0,0,0,1,1,1]
也只能用一种方法重新排列,这是[1,1,1,0,0,0]
。
[0,0,0,1,1,1,1]
不能以任何方式布置。
[1,2,2,14]
可以设置在2种方式即[2,1,14,2], [2,14,1,2]
。
[1,1,2,2,14]
可以布置在4种方式即[14,2,1,1,2], [2,2,14,1,1], [2,2,1,14,1], [2,14,1,1,2]
。
数学解决方案是可用的,但我正在考虑使用编程概念的一些简单的方法。数学代码是有点像这个..(对不起,我不能以正确的格式上传)
∫∞0 Ln1(x)..Lnr(x)e−xdx
其中R是项目的数量,NI是项目出现的次数我和LK是第k个拉盖尔多项式。例如,对于1,1,2,2,14,我们有R = 3,N1 = 2,N2 = 2,N3 = 1,所以到一个标志重排的数量是
∫∞0 L2(x)L2(x)L1(x)e−xdx
= ∫∞0 12(x2−4x+2)12(x2−4x+2)(1−x)e−xdx
= ∫∞0(−14x5+94x4−7x3+9x2−5x+1)e−xdx
= −4
但我在想,是否有任何python库可以根据我们的需要生成所有的排列组合。
感谢您的编辑。而答案短单纯,温柔:)我用这一个:)至于我不得不输出没有。方法我用LEN()函数来设置之前,它给了整数作为输出.. –