gpt4 book ai didi

julia - 循环排列

转载 作者:行者123 更新时间:2023-12-02 06:29:36 25 4
gpt4 key购买 nike

给定一个向量 z = [1, 2, 3] ,我想创建一个所有循环排列为 z 的向量的向量(即 zp = [[1,2,3], [3,1,2], [2,3,1]] )。

我可以打印 zp 的所有元素和

for i in 1:length(z)
push!(z, shift!(z)) |> println
end

如何存储结果排列?注意
zp = Vector(length(z))
for i in 1:length(z)
push!(z, shift!(z))
push!(zp, z)
end

不起作用,因为它存储了相同的向量 z 3 次在 zp .

最佳答案

一种方法是在推送之前复制向量:

z = [1, 2, 3];

zp = Vector();
for i in 1:length(z)
push!(z, shift!(z))
push!(zp, copy(z))
end

给我
julia> zp
3-element Array{Any,1}:
[2,3,1]
[3,1,2]
[1,2,3]

但我倾向于尽可能避免变异操作。所以我宁愿把它写成
julia> zp = [circshift(z, i) for i=1:length(z)]
3-element Array{Array{Int64,1},1}:
[3,1,2]
[2,3,1]
[1,2,3]

关于julia - 循环排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43035099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com