我为随机游走编写了以下代码,它从 {-1,1} 中抽取随机值。
(defn notahappyfoo [n]
(reverse (butlast (butlast (reverse (interleave (take n (iterate rand (- 0 1)))(take n (iterate rand 1))))))))
但是,代码无法生成令人满意的步行。主要问题源于函数 rand。它的下限是 0,这迫使我编写了笨拙的代码。即,函数 interleave 最终导致行走中的剧烈变化,因为值被迫从正向负摆动。使用此代码很难获得任何连续路径的感觉。
我相信 Clojure 中应该有一个优雅的形式来构建这个 walk。但是我无法将正确的功能拼凑在一起来生成这样的步行。我要构建的函数的目标包括随机数的下限和上限。在上面的代码中,我强制将区间 -1 设置为 1。将其推广到 -a 和 a 会很好。此外,如何在 -a 和 a 之间形成具有某种连续性概念的随机实数(浮点数)集合?