Почему моя случайная функция не всегда работает? - PullRequest
0 голосов
/ 21 января 2019

Моя функция должна давать мне 6 цифр, но чтобы избежать нуля, она не должна повторять никакие числа, но иногда она приносит мне 0 или повторяющиеся числа

(defn function
  []
  (def lista (sort (take 6 (repeatedly #(rand-int 60)))))
  (loop []
    (when (or (= (contains? (set lista) 0) true) (< (count (set lista)) 6))
      (def lista (sort (take 6 (repeatedly #(rand-int 60)))))))
  (println lista))

1 Ответ

0 голосов
/ 21 января 2019

для решения вашей проблемы вам не нужна эта функция. Вы можете взять случайную 10 и вызвать функцию set, чтобы удалить дубликаты и отфильтровать только положительные числа и взять 6 из нее. код выглядит примерно так. 20 это просто случайная выборка

(take 6 (filter pos? (set (take 20 (repeatedly #(rand-int 60))))))

или

(->> #(rand-int 60) (repeatedly) (take 20) (set) (filter pos?) (take 6) )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...