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

Posted

技术标签:

【中文标题】在 Julia 中生成范围内的随机整数【英文标题】:Generating a random integer in range in Julia 【发布时间】:2014-08-11 04:31:15 【问题描述】:

我正在从 MATLAB 迁移到 Julia,并尝试在 1:n 范围内生成一个随机整数。

对于n < 21

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

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

ERROR: BoundsError() in getindex at range.jl:121

【问题讨论】:

什么是r?也许是一个 20 元素的向量?如果我理解正确,rand(1:n) 应该是你所需要的。 什么是r?试试rand(1:21) 【参考方案1】:

您可以将范围作为rand 的第一个参数,如rand(1:n)

julia> rand(1:10)
7

julia> rand(1:10,10,10)
10x10 ArrayInt64,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 中定义的分布对象。

【讨论】:

rand(S) 是否对S 使用均匀抽样或其他概率分布?我的意思是,如果我想生成统一的随机整数,我通常会使用rand(Uniform(1, n)),然后我会应用ceil(Int, ...)floor(Int, ...)。但我认为写rand(1:n) 更正确如果采样是统一完成的

以上是关于在 Julia 中生成范围内的随机整数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中生成特定范围内的随机整数?

如何在[0,5]范围内的fortran 90中生成整数随机数?

如何在excel中生成一个在一定范围内的随机数

在熊猫中生成给定范围内的随机日期

在MATLAB中生成一定范围内的随机数

如何在Javascript中生成随机数[重复]