annotate src/rlm/jen.clj @ 8:7240d7a5f959

random files :)
author Robert McIntyre <rlm@mit.edu>
date Thu, 19 Jul 2012 10:56:39 -0500
parents
children
rev   line source
rlm@8 1 (ns rlm.jen)
rlm@8 2
rlm@8 3 (defn select-cells [n total-groups]
rlm@8 4 (map (fn [_] (int (* total-groups (Math/random)))) (range n)))
rlm@8 5
rlm@8 6 (defn all-selected? [selections n]
rlm@8 7 (= n (count (set selections))))
rlm@8 8
rlm@8 9 (defn probability-of-all-selected
rlm@8 10 [n desired total-groups total-trials]
rlm@8 11 (let [trials
rlm@8 12 (map (fn [_]
rlm@8 13 (all-selected?
rlm@8 14 (select-cells n total-groups) desired))
rlm@8 15 (range total-trials))
rlm@8 16 prob
rlm@8 17 (/ (count (filter identity trials)) total-trials)]
rlm@8 18 prob))
rlm@8 19
rlm@8 20 (defn your-problem [up-to trials-per-test]
rlm@8 21 (print "selections probability of getting all 15\n")
rlm@8 22 (dorun
rlm@8 23 (map
rlm@8 24 (fn [n]
rlm@8 25 (let [prob
rlm@8 26 (probability-of-all-selected
rlm@8 27 n 15 15 trials-per-test)]
rlm@8 28 (printf "%10d %1.3f\n" n (float prob))))
rlm@8 29 (range up-to))))
rlm@8 30
rlm@8 31
rlm@8 32 ;; rlm.jen> (your-problem 100 1000)
rlm@8 33 ;; selections probability of getting all 15
rlm@8 34 ;; 0 0.000
rlm@8 35 ;; 1 0.000
rlm@8 36 ;; 2 0.000
rlm@8 37 ;; 3 0.000
rlm@8 38 ;; 4 0.000
rlm@8 39 ;; 5 0.000
rlm@8 40 ;; 6 0.000
rlm@8 41 ;; 7 0.000
rlm@8 42 ;; 8 0.000
rlm@8 43 ;; 9 0.000
rlm@8 44 ;; 10 0.000
rlm@8 45 ;; 11 0.000
rlm@8 46 ;; 12 0.000
rlm@8 47 ;; 13 0.000
rlm@8 48 ;; 14 0.000
rlm@8 49 ;; 15 0.000
rlm@8 50 ;; 16 0.000
rlm@8 51 ;; 17 0.000
rlm@8 52 ;; 18 0.001
rlm@8 53 ;; 19 0.000
rlm@8 54 ;; 20 0.001
rlm@8 55 ;; 21 0.004
rlm@8 56 ;; 22 0.005
rlm@8 57 ;; 23 0.012
rlm@8 58 ;; 24 0.008
rlm@8 59 ;; 25 0.028
rlm@8 60 ;; 26 0.031
rlm@8 61 ;; 27 0.049
rlm@8 62 ;; 28 0.045
rlm@8 63 ;; 29 0.056
rlm@8 64 ;; 30 0.100
rlm@8 65 ;; 31 0.113
rlm@8 66 ;; 32 0.125
rlm@8 67 ;; 33 0.159
rlm@8 68 ;; 34 0.152
rlm@8 69 ;; 35 0.203
rlm@8 70 ;; 36 0.216
rlm@8 71 ;; 37 0.259
rlm@8 72 ;; 38 0.285
rlm@8 73 ;; 39 0.283
rlm@8 74 ;; 40 0.331
rlm@8 75 ;; 41 0.371
rlm@8 76 ;; 42 0.420
rlm@8 77 ;; 43 0.421
rlm@8 78 ;; 44 0.456
rlm@8 79 ;; 45 0.491
rlm@8 80 ;; 46 0.527
rlm@8 81 ;; 47 0.558
rlm@8 82 ;; 48 0.534
rlm@8 83 ;; 49 0.568
rlm@8 84 ;; 50 0.580
rlm@8 85 ;; 51 0.605
rlm@8 86 ;; 52 0.668
rlm@8 87 ;; 53 0.676
rlm@8 88 ;; 54 0.678
rlm@8 89 ;; 55 0.706
rlm@8 90 ;; 56 0.726
rlm@8 91 ;; 57 0.732
rlm@8 92 ;; 58 0.743
rlm@8 93 ;; 59 0.755
rlm@8 94 ;; 60 0.761
rlm@8 95 ;; 61 0.789
rlm@8 96 ;; 62 0.804
rlm@8 97 ;; 63 0.798
rlm@8 98 ;; 64 0.837
rlm@8 99 ;; 65 0.825
rlm@8 100 ;; 66 0.832
rlm@8 101 ;; 67 0.865
rlm@8 102 ;; 68 0.871
rlm@8 103 ;; 69 0.880
rlm@8 104 ;; 70 0.894
rlm@8 105 ;; 71 0.892
rlm@8 106 ;; 72 0.892
rlm@8 107 ;; 73 0.903
rlm@8 108 ;; 74 0.911
rlm@8 109 ;; 75 0.917
rlm@8 110 ;; 76 0.926
rlm@8 111 ;; 77 0.937
rlm@8 112 ;; 78 0.922
rlm@8 113 ;; 79 0.942
rlm@8 114 ;; 80 0.927
rlm@8 115 ;; 81 0.936
rlm@8 116 ;; 82 0.952
rlm@8 117 ;; 83 0.952
rlm@8 118 ;; 84 0.960
rlm@8 119 ;; 85 0.973
rlm@8 120 ;; 86 0.969
rlm@8 121 ;; 87 0.952
rlm@8 122 ;; 88 0.963
rlm@8 123 ;; 89 0.973
rlm@8 124 ;; 90 0.971
rlm@8 125 ;; 91 0.969
rlm@8 126 ;; 92 0.980
rlm@8 127 ;; 93 0.968
rlm@8 128 ;; 94 0.975
rlm@8 129 ;; 95 0.991
rlm@8 130 ;; 96 0.980
rlm@8 131 ;; 97 0.977
rlm@8 132 ;; 98 0.982
rlm@8 133 ;; 99 0.988
rlm@8 134 ;; nil
rlm@8 135
rlm@8 136