在Incanter中生成随机数

时间:2010-09-21 14:51:15

标签: clojure leiningen incanter

如何在incanter的Parallel Colt中使用随机数生成器?

我在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”]]

然后我尝试了(导入cern.jet.random.tdouble Normal),我得到了一个java.lang.ClassNotFoundException类。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:8)

您无需直接调用Parallel Colt在Incanter中生成随机数。有两种不同的方法。

首先,incanter.stats中有原始的随机数生成器函数:

sample-normal
sample-poisson
sample-uniform
sample-t
sample-net-binomial
sample-binomial
etc..

每个函数都将生成的值的数量作为其第一个参数,以及用于设置要绘制的分布参数的可选参数。例如,要从正态分布中绘制100个均值为-2且标准差为sqrt为0.5的值,请执行以下操作:

(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)))

答案 1 :(得分:5)

liebke可能已解决了您在特定领域的需求,但重新导入:

1)确保您运行lein deps

2)import的语法为(import [cern.jet.random.tdouble Normal])(import cern.jet.random.tdouble.Normal)