在J中,我知道我们可以生成一个统一随机数的列表,并使用某种反函数来获得一个正态分布数的列表。但是有没有一种快速的方法来实现这一点?
如何生成一个 3*4 矩阵 B,元素 b 分布为 b ~ N(5,0.9^2(
一种方式 #1
load 'stats/distribs'
B=. 5 0.9 rnorm 3 4
一种方式 #2
load 'math/mt'
NB. real b ~ N(5,0.9^2)
B=. 5 0.9 randnf_mt_ 3 4
NB. complex b ~ N(5+i*6,0.9^2)
B=. 5j6 0.9 randnc_mt_ 3 4
NB. quaternion b ~ N(5+i*6+j*7+k*8,0.9^2)
B=. 5j6 7j8 0.9 randnq_mt_ 3 4
两者都使用Box-Muller方法。