在Incanter中生成随机数

2da*_*aaa 2 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.

我在这做错了什么?

小智 8

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

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

sample-normal
sample-poisson
sample-uniform
sample-t
sample-net-binomial
sample-binomial
etc..
Run Code Online (Sandbox Code Playgroud)

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

(use '[incanter core stats])
(sample-normal 100 :mean -2 :sd (sqrt 0.5))
Run Code Online (Sandbox Code Playgroud)

生成随机数的第二种方法是使用incanter.distributions命名空间中的函数.

(require '[incanter.distributions :as dist])
(dist/draw (dist/normal-distribution -2 (sqrt 0.5)))
Run Code Online (Sandbox Code Playgroud)


Jus*_*mer 5

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

1)确保你跑 lein deps

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