gpt4 book ai didi

arrays - Julia - 随机数组

转载 作者:行者123 更新时间:2023-12-02 01:36:08 27 4
gpt4 key购买 nike

如何使用 Julia 语言将随机数(例如从 1 到 100)添加到数组中?此外,该数组必须具有定义的长度(例如 30 个数字)。

最佳答案

如果你的初始向量是v,你可以这样做:

v .+= rand(1:100,length(v))
  • rand(1:100,length(v)) 将生成一个由 1 到 100 之间的整数组成的随机向量,其长度与 v 的向量相同( length(v) 部分),你可以阅读 rand()文档以获取更多详细信息。
  • .+= 是执行“就地”向量加法的 Julia 语法。关于性能,这是一个需要了解的重要语法,请参阅 "dot call" syntax

更新一个更高效的方法,是:

map!(vi->vi+rand(1:100),v,v)

注意:该方法效率更高,因为它避免了创建 rand(1:100,length(v)) 临时向量。


更新 如果您想用随机整数填充(而不是添加)向量,另一种方法是@DNS 的方法(见评论):

using Random

v = Vector{Int}(undef,30)
rand!(v,1:100)

注意:

  • Vector{Int}(undef,30) 是 Julia 用于创建包含 30 个未初始化 整数的向量的方法。
  • rand!()函数用随机整数填充这个向量。它在内部使用 for 循环。

.

rand!(A::AbstractArray{T}, X) where {T} = rand!(default_rng(), A, X)

# ...

function rand!(rng::AbstractRNG, A::AbstractArray{T}, sp::Sampler) where T
for i in eachindex(A)
@inbounds A[i] = rand(rng, sp)
end
A
end

关于arrays - Julia - 随机数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72363010/

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