在 Julia 中生成范围内的随机整数

问题描述 投票:0回答:2

我正在从 MATLAB 迁移到 Julia,我正在尝试生成

1:n
范围内的随机整数。

对于

n < 21

rand(r[1:n])
有效。

但是对于

n > 20
,例如,
rand(r[1:21])
,我收到以下消息:

ERROR: BoundsError() in getindex at range.jl:121
random julia
2个回答
79
投票

您可以将范围作为

rand
的第一个参数,如
rand(1:n)
:

julia> rand(1:10)
7

julia> rand(1:10,10,10)
10x10 Array{Int64,2}:
 10   2  5  8   5   5  3   7   1   3
  5   1  4  2   4   4  1   6   6   9
  8   1  3  9   4   8  7   8   7  10
  3   8  1  5   7   9  7   8  10   7
  5   8  5  6   6   2  2   7   4   3
 10   4  8  8  10   5  1  10   5   1
  6   1  8  1   6   5  7  10   6  10
  5  10  2  5   4   5  4   1   3   9
  5   4  6  4   4   1  7   8   1   5
 10   2  6  4   3  10  7   3   8   7

一般

rand
函数的第一个参数通常给出“要从中采样的对象”,可以是值范围或Distributions.jl中定义的分布对象。


0
投票

我无法评论 b/c 我没有足够的代表,但值得注意的是,您也可以使用 DiscreteUniform (来自 Distributions)。值得一提的是,它是一个正式的发行版,在某些情况下可能有一些优势。

© www.soinside.com 2019 - 2024. All rights reserved.