changeset 9:f00fd0247806

Add elisp
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 01 Oct 2013 21:39:36 -0400
parents
children 484f9cac6a1f
files elisp/streaks.el
diffstat 1 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/elisp/streaks.el
@@ -0,0 +1,27 @@
+(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))