Mercurial > rlm
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 |