Мне было интересно, как включить случайные числа в Clojure. Я придумал это:
(import java.util.Random)
(def rnd
(Random.))
(defn random-float
[min max rnd]
(+ min (* (.nextDouble rnd) (- max min))))
Кажется, что в Java есть только включающие / исключающие случайные функции. По документации:
Общий контракт nextDouble - это выбранное одно двойное значение
(приблизительно) равномерно в диапазоне от 0,0d (включительно) до 1,0d
(исключая), генерируется и возвращается псевдослучайно.
Есть ли способ получить инклюзивную / инклюзивную версию этой функции. Я думал об увеличении максимального значения чуть-чуть (0,0000000000000001). Не уверен, что будет, если я сделаю это.
Будет ли это работать?
(random-float 0.0 1.0000000000000001 rnd)