Я пытаюсь написать функцию в clojure, чтобы найти стандартное отклонение последовательности (вектора). Пока я определил функцию, чтобы найти среднее значение набора чисел, но у меня проблема с несколькими вещами.Стандартное отклонение в clojure
Во-первых, я смущен тем, как использовать квадратный корень и полномочия в clojure. Во-вторых, я пытаюсь выяснить, как вытащить каждый элемент по отдельности из вектора и вычесть среднее из него, а затем скомпоновать его.
До сих пор это моя функция
(defn mean [a] (/ (reduce + a) (count a)))
(defn standarddev [a] (Math/sqrt (/ (reduce + (map square #(- % (mean a) a))) (- (count a) 1))))
Я думаю, У меня может быть это, но я получаю erorr, когда я пытаюсь применить свою формулу к вектору, например say (standarddev [1 2 3 4]). Что я до сих пор (defn standarddev [a] (Math/sqrt (/ (квадрат карты (карта - a (означает a))) (- (count a) 1)))) – user3483844
@ user3483844 проверить свои входы на 'map', вы хотите только чтобы передать им функцию и коллекцию, вы передаете 2 коллекции (что действительно, но не то, что вы хотите сделать здесь). – Josh
Итак, вот что я хочу делать. У меня есть список номеров. Сначала я хочу вычесть среднее из каждого из элементов вектора. Что я могу сделать с картой, я верю. Затем я хочу соединить каждый элемент, который я могу сделать с картой, и, наконец, я хочу добавить все квадраты, которые я могу сделать с картой. Верный? – user3483844