view elisp/streaks.el @ 9:f00fd0247806

Add elisp
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 01 Oct 2013 21:39:36 -0400
parents
children
line wrap: on
line source

(setq biggest-streaks nil)
(setq reps 1000.0)

(dotimes (i reps)

  (setq groups nil)

  (let ((n 100)
        (pre nil))
    (dolist (elt 
             ;; Make n random flips
             (mapcar (lambda (x) (mod (random) 2))
                     (make-list n nil)))
      ;; Group streaks together
      (progn
        (if (eql elt pre)
            (setq groups 
                  (cons (cons elt (car groups)) (cdr groups)))
          (setq groups
                (cons (list elt) groups)))      
        (setq pre elt))))

  ;; Get the longest streak
  (setq biggest-streaks
        (cons (apply 'max (mapcar 'length groups)) biggest-streaks)))

(message "Average is %f " (/ (apply '+ biggest-streaks) reps))