如何在incanter的平行小马中使用随机数生成器?
我已经在我的project.clj文件中列出了这些依赖项:
:dependencies [
[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]
[incanter/core "1.2.3"]
[incanter/parallelcolt "0.9.4"]
]
然后我尝试了(import cern.jet.random.tdouble Normal)
并且得到了class java.lang.ClassNotFoundException
。
我在这里做错了什么?
liebke可能已经在这里解决了您特定于域的需求,但是重新导入:
1)确保您运行lein deps
2)import
的语法为(import [cern.jet.random.tdouble Normal])
或(import cern.jet.random.tdouble.Normal)
您无需直接调用Parallel Colt即可在Incanter中生成随机数。有两种不同的方法。
首先,incanter.stats中具有原始的随机数生成器功能:
sample-normal
sample-poisson
sample-uniform
sample-t
sample-net-binomial
sample-binomial
etc..
每个函数将要生成的值的数量作为其第一个参数,以及用于设置要从中提取分布的参数的可选args。例如,要从正态分布中取平均值为-2且sqrt标准偏差为0.5的100个值,请执行以下操作:
(use '[incanter core stats])
(sample-normal 100 :mean -2 :sd (sqrt 0.5))
生成随机数的第二种方法是使用incanter.distributions命名空间中的函数。
(require '[incanter.distributions :as dist])
(dist/draw (dist/normal-distribution -2 (sqrt 0.5)))