(def throws 10)
(defn r-squared [x y]
(+ (* (- 0.5 x) (- 0.5 x))
(* (- 0.5 y) (- 0.5 y))))
(loop [hits 0]
(let [x (rand)
y (rand)]
; still inside the let
(if (< (r-squared x y) 0.25) ;is it a hit or not? if not, try again
(recur (inc hits))
(* 4 (/ hits throws)))))
Я получил этот код, работающий и работающий, пока условие if не будет истинным. Как я могу переписать его, поэтому он принимает X как параметр и запускает X раз?положить код clojure в петлю
Я в основном хочу позвонить (r-squared 100) и получить, сколько хитов я получил как возвращаемое значение.
как я обернуть это время, чтобы получить время exeuction? – peter
Оберните свой звонок для проверки во времени. '(time (test 100))' – Rayne
Код никогда не меняет значение n. Это эквивалентно исходному коду плаката, для любого n больше 0. –