在斜角中生成随机数

问题描述 投票:2回答:2

如何在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

我在这里做错了什么?

clojure leiningen incanter
2个回答
5
投票

liebke可能已经在这里解决了您特定于域的需求,但是重新导入:

1)确保您运行lein deps

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


8
投票

您无需直接调用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)))
© www.soinside.com 2019 - 2024. All rights reserved.