-Python vs Julia- 整数の乱数を発生させる

過去にPythonを用いて整数の乱数を発生させるコード例を投稿しました.

その中では,20回サイコロを振ることを想定して,整数の乱数を発生させるに,Pythonで以下のように書きました.

>>> import numpy as np
>>> np.random.choice(np.arange(1, 7), 20)
array([4, 2, 5, 1, 6, 5, 5, 3, 1, 5, 4, 4, 3, 4, 1, 5, 2, 1, 2, 2])


これをJuliaで行う場合には,以下のように書けば良いようです.

julia> rand(1:6, 20) # rand(start:stop, times)
20-element Array{Int64,1}:
 4
 3
 5
 5
 2
 3
 2
 2
 5
 3
 3
 1
 4
 4
 6
 5
 4
 4
 2
 5

上記のREPLの例にもコメントしてありますが,関数rand()の使い方は以下のようになります.

   rand(start:stop, times)


上記の例は復元抽出なので,非復元抽出を行う場合は以下のように書きました.

>>> np.random.choice(np.arange(1, 7), 6, replace = False)
array([5, 3, 4, 6, 1, 2])


これをJuliaで行う場合には,StatsBaseパッケージを用いて,以下のように書けば良いようです.

julia> using StatsBase
 
julia> sample(1:6, 6, replace=false)
6-element Array{Int64,1}:
 6
 4
 1
 3
 2
 5
関数sample()の使い方は以下のようになります.
    sample(start:stop, times, replace = "true" or "false")
 
なので,最初のコードと同じことを実行するためには,以下のように書いても良いようです.

julia> sample(1:6, 20, replace=true)

20-element Array{Int64,1}:

 4

 1

 6

 4

 1

 5

 5

 6

 4

 2

 6

 3

 2

 1

 1

 6

 2

 1

 5

 1

なお,上記の例のJupyter Notebookファイルは,GitHubPython_vs_Julia_Julia_03というファイルで見ることができます.