我如何才能找到路數的數字序列(可能含有類似物品)可以重新排列,使一些不放在同一個地方,因爲它或它的類似號碼被放置。查找方式的順序可以重新排列數量
例如,[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()函數來設置之前,它給了整數作爲輸出.. –