web-dev-qa-db-ja.com

ジュリアの範囲でランダムな整数を生成する

matlabからJuliaに移行し、1:nの範囲でランダムな整数を生成しようとしています。

_n < 21_の場合、

Rand(r[1:n])は機能します。

ただし、_n > 20_の場合、たとえばRand(r[1:21])

このメッセージが表示されます。

エラー:range.jl:121のgetindexのBoundsError()

29
user3411759

Rand(1:n)のように、Randの最初の引数として範囲を指定できます。

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 で定義された分布オブジェクトである「サンプリング対象」を提供します。

45
StefanKarpinski