Anonymous user
Cumulative standard deviation: Difference between revisions
Emacs Lisp: Improve solutions
ReeceGoding (talk | contribs) m (→"Running" SD) |
(Emacs Lisp: Improve solutions) |
||
Line 1,409:
=={{header|Emacs Lisp}}==
<lang lisp>(defun running-std (items)
(dolist (item items)
(setq result (sqrt (- (/ running-squared-sum (float running-len))
(float (* running-len running-len))))))
(message "%f" result))
result))
▲ (make-local-variable 'running-squared-sum)
▲ (setq running-sum (+ running-sum x))
▲ (setq running-len (1+ running-len))
▲ (setq running-squared-sum (+ running-squared-sum (* x x)))
▲ (sqrt (- (/ running-squared-sum
▲ running-len) (/ (* running-sum running-sum)
▲ (* running-len running-len )))))</lang>
{{out}}
▲ (newline))
1.
0.942809
0.866025
0.979796
1.
1.399708
2.000000
2.0
{{libheader|Calc}}
<lang
▲(string-to-number (calc-eval (format "sqrt(vpvar(%s))" x)))</lang>
{{libheader|generator.el}}
<lang
(require 'generator)
(iter-defun std-dev-gen (lst)
(let ((sum 0)
(dolist (i lst)
(setq i (float i))
Line 1,469 ⟶ 1,460:
(setq std 0)
(dolist (j tmp)
(setq std (/ std (length tmp)))
(setq std (sqrt std))
Line 1,475 ⟶ 1,466:
(let* ((test-data '(2 4 4 4 5 5 7 9))
(generator (std-dev-gen test-data)))
(dolist (i test-data)
(
=={{header|Erlang}}==
|