6

Goで文字で満たされたスライスのすべての順列を見つける方法があるかどうか疑問に思っていましたか?

Python ではitertools.product、リスト、文字、または整数を使用でき、可能なすべての順列を取得できます。

そこにパッケージがあるかどうかを確認しましたが、見つからないようです。どんな助けでも大歓迎です。

4

3 に答える 3

0

これは、私が書いた順列関数の実装です...

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 スライスを返すようにコードを簡単に変更できます。

于 2013-08-28T19:30:37.473 に答える