Goで文字で満たされたスライスのすべての順列を見つける方法があるかどうか疑問に思っていましたか?
Python ではitertools.product
、リスト、文字、または整数を使用でき、可能なすべての順列を取得できます。
そこにパッケージがあるかどうかを確認しましたが、見つからないようです。どんな助けでも大歓迎です。
Goで文字で満たされたスライスのすべての順列を見つける方法があるかどうか疑問に思っていましたか?
Python ではitertools.product
、リスト、文字、または整数を使用でき、可能なすべての順列を取得できます。
そこにパッケージがあるかどうかを確認しましたが、見つからないようです。どんな助けでも大歓迎です。
これは、私が書いた順列関数の実装です...
https://github.com/itcraftsman/GoPermutation
func permutate(slice [][]int) (permutations [][][]int){
f := fac(len(slice))
for i := 0; i < len(slice); i++ {
elem, s := splice(slice, i)
pos := 0
for count := 0; count < (f / len(slice)); count++{
if pos == (len(s) -1) {
pos = 0
}
s = swap(s, pos, pos +1)
permutation := make([][]int, len(slice))
permutation = s
permutation = append(permutation, elem)
permutations = append(permutations, permutation)
pos++
}
}
return
}
2D スライスを入力として受け取り、3D スライスを返しますが、関数が単純なスライスを入力として受け取り、すべての順列を含む 2D スライスを返すようにコードを簡単に変更できます。