0
今日私は最初のステップをやってみました。 私は与えられたリストのすべての順列を作成する関数を書こうとしました。 まず、私は完全に失敗したので、私は、Pythonで関数を書き、それが行くようにステップバイステップで変換してみました:Go言語の順列を作成
のpython:
def get_permutations(elements):
permutations = []
if len(elements) == 1:
return [elements]
for i in range(len(elements)):
for perm in get_permutations(elements[0:i] + elements[i+1:]):
permutations.append([elements[i]] + perm)
return permutations
print(get_permutations([1,2,3]))
GO:
func getPermutations(elements []int) [][]int {
permutations := [][]int{}
if len(elements) == 1 {
permutations = [][]int{elements}
return permutations
}
for i := range elements {
for _, perm := range getPermutations(append(elements[0:i], elements[i+1:]...)) {
permutations = append(permutations, append([]int{elements[i]}, perm...))
}
}
return permutations
}
func main() {
x := getPermutations([]int{1, 2, 3})
fmt.Print(x)
}
Pythonのバージョンは、While [1,2,3]、[2,3,1]、[2,3,1,2]は、この出力を作成します:
[1,2,3] 、[3、 2、1]]
外出バージョンがこれを作成します。
[3 3 3] [3 3 3] [3 3 3] [3 3 3] [3 3 3] [3 3 3]]
私は本当に誰かが私を助けることができます。私が実際に知りたいのは、私がゴーコードで間違っていたことです。
おかげでたくさんの私はそれがこのような何かを思ったが、配列のスライスは、それのソースにrefereneceを持っていない私ものの – Ced