Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random Clojure中的随机游动_Random_Clojure_Clojure Contrib - Fatal编程技术网

Random Clojure中的随机游动

Random Clojure中的随机游动,random,clojure,clojure-contrib,Random,Clojure,Clojure Contrib,我已经为随机游走编写了以下代码,它从{-1,1}中提取随机值 (defn notahappyfoo [n] (reverse (butlast (butlast (reverse (interleave (take n (iterate rand (- 0 1)))(take n (iterate rand 1)))))))) 但是,代码无法生成令人满意的漫游。主要问题源于函数rand。它的下限是0,这迫使我编写了一段笨拙的代码。也就是说,当值被迫从正到负摆动时,函数交错最终导致漫游中的剧烈移

我已经为随机游走编写了以下代码,它从{-1,1}中提取随机值

(defn notahappyfoo [n]
(reverse (butlast (butlast (reverse (interleave (take n (iterate rand (- 0 1)))(take n (iterate rand 1))))))))
但是,代码无法生成令人满意的漫游。主要问题源于函数rand。它的下限是0,这迫使我编写了一段笨拙的代码。也就是说,当值被迫从正到负摆动时,函数交错最终导致漫游中的剧烈移动。使用此代码很难获得任何连续路径的感觉


我相信在Clojure应该有一种优雅的形式来建造这条步行道。但我无法将正确的函数组合在一起生成这样的行走。我想要构造的函数的目标由随机数的上下界组成。在上面的代码中,我强制间隔为-1到1。把它推广到-a和a会很好。此外,如何在-a和a之间形成具有某种连续性概念的随机实数(浮点)集合

您需要一个取值范围的随机函数

(defn myrand [a b] 
  (+ a (rand (- b a))))
然后可以创建一个序列

(def s (repeatedly #(myrand -1 1)))
最后,您可以使用减少来获得一次示例行走

(take 10 s)

(reductions + (take 10 s))

你需要一个取值范围的随机函数

(defn myrand [a b] 
  (+ a (rand (- b a))))
然后可以创建一个序列

(def s (repeatedly #(myrand -1 1)))
最后,您可以使用减少来获得一次示例行走

(take 10 s)

(reductions + (take 10 s))