$max){ //min is bigger than max, switch. $x = $max; $max = $min; $min = $x; } if (($min-$max)==0){ //equal values, return one of them. return $min; } if (!is_array($bell_curve)){ $bell_curve = array( 3 => -0.716599, 4 => -0.708501841, 5 => -0.688258942, 6 => -0.676113203, 7 => -0.659918884, 8 => -0.651821725, 9 => -0.639675985, 10 => -0.631578826, 11 => -0.627530246, 12 => -0.619433087, 13 => -0.611335927, 14 => -0.607287348, 15 => -0.599190188, 16 => -0.595141608, 17 => -0.591093029, 18 => -0.587044449, 19 => -0.582995869, 20 => -0.57894729, 21 => -0.57489871, 22 => -0.57085013, 23 => -0.56680155, 24 => -0.562752971, 25 => -0.558704391, 26 => -0.554655811, 28 => -0.550607232, 29 => -0.546558652, 31 => -0.542510072, 32 => -0.538461492, 34 => -0.534412913, 35 => -0.530364333, 37 => -0.526315753, 39 => -0.522267174, 41 => -0.518218594, 43 => -0.514170014, 45 => -0.510121434, 47 => -0.506072855, 50 => -0.502024275, 52 => -0.497975695, 54 => -0.493927115, 57 => -0.489878536, 60 => -0.485829956, 63 => -0.481781376, 66 => -0.477732797, 69 => -0.473684217, 72 => -0.469635637, 75 => -0.465587057, 79 => -0.461538478, 83 => -0.457489898, 86 => -0.453441318, 90 => -0.449392739, 95 => -0.445344159, 99 => -0.441295579, 104 => -0.437246999, 108 => -0.43319842, 113 => -0.42914984, 118 => -0.42510126, 124 => -0.421052681, 129 => -0.417004101, 135 => -0.412955521, 141 => -0.408906941, 147 => -0.404858362, 154 => -0.400809782, 161 => -0.396761202, 168 => -0.392712623, 175 => -0.388664043, 183 => -0.384615463, 191 => -0.380566883, 199 => -0.376518304, 207 => -0.372469724, 216 => -0.368421144, 226 => -0.364372565, 235 => -0.360323985, 245 => -0.356275405, 256 => -0.352226825, 266 => -0.348178246, 277 => -0.344129666, 289 => -0.340081086, 301 => -0.336032506, 313 => -0.331983927, 326 => -0.327935347, 340 => -0.323886767, 354 => -0.319838188, 368 => -0.315789608, 383 => -0.311741028, 399 => -0.307692448, 415 => -0.303643869, 431 => -0.299595289, 448 => -0.295546709, 466 => -0.29149813, 485 => -0.28744955, 504 => -0.28340097, 523 => -0.27935239, 544 => -0.275303811, 565 => -0.271255231, 587 => -0.267206651, 609 => -0.263158072, 633 => -0.259109492, 657 => -0.255060912, 682 => -0.251012332, 708 => -0.246963753, 734 => -0.242915173, 762 => -0.238866593, 790 => -0.234818014, 820 => -0.230769434, 850 => -0.226720854, 881 => -0.222672274, 914 => -0.218623695, 947 => -0.214575115, 982 => -0.210526535, 1017 => -0.206477955, 1054 => -0.202429376, 1091 => -0.198380796, 1130 => -0.194332216, 1171 => -0.190283637, 1212 => -0.186235057, 1255 => -0.182186477, 1298 => -0.178137897, 1344 => -0.174089318, 1390 => -0.170040738, 1438 => -0.165992158, 1488 => -0.161943579, 1539 => -0.157894999, 1591 => -0.153846419, 1645 => -0.149797839, 1700 => -0.14574926, 1757 => -0.14170068, 1816 => -0.1376521, 1876 => -0.133603521, 1938 => -0.129554941, 2002 => -0.125506361, 2068 => -0.121457781, 2135 => -0.117409202, 2204 => -0.113360622, 2275 => -0.109312042, 2348 => -0.105263463, 2423 => -0.101214883, 2500 => -0.097166303, 2579 => -0.093117723, 2660 => -0.089069144, 2743 => -0.085020564, 2828 => -0.080971984, 2916 => -0.076923405, 3005 => -0.072874825, 3097 => -0.068826245, 3192 => -0.064777665, 3288 => -0.060729086, 3387 => -0.056680506, 3489 => -0.052631926, 3593 => -0.048583346, 3700 => -0.044534767, 3809 => -0.040486187, 3920 => -0.036437607, 4035 => -0.032389028, 4152 => -0.028340448, 4272 => -0.024291868, 4394 => -0.020243288, 4520 => -0.016194709, 4648 => -0.012146129, 4779 => -0.008097549, 4913 => -0.00404897, 5050 => 0, // 5th percentile 5190 => 0.00404819, 5334 => 0.00809677, 5480 => 0.012145349, 5629 => 0.016193929, 5782 => 0.020242509, 5938 => 0.024291088, 6097 => 0.028339668, 6260 => 0.032388248, 6426 => 0.036436828, 6595 => 0.040485407, 6768 => 0.044533987, 6944 => 0.048582567, 7123 => 0.052631146, 7307 => 0.056679726, 7493 => 0.060728306, 7684 => 0.064776886, 7878 => 0.068825465, 8076 => 0.072874045, 8277 => 0.076922625, 8482 => 0.080971205, 8692 => 0.085019784, 8904 => 0.089068364, 9121 => 0.093116944, 9342 => 0.097165523, 9566 => 0.101214103, 9795 => 0.105262683, 10027 => 0.109311263, 10264 => 0.113359842, 10504 => 0.117408422, 10749 => 0.121457002, 10997 => 0.125505581, 11250 => 0.129554161, 11507 => 0.133602741, 11768 => 0.137651321, 12033 => 0.1416999, 12302 => 0.14574848, 12576 => 0.14979706, 12854 => 0.153845639, 13136 => 0.157894219, 13422 => 0.161942799, 13712 => 0.165991379, 14007 => 0.170039958, 14306 => 0.174088538, 14609 => 0.178137118, 14917 => 0.182185697, 15229 => 0.186234277, 15545 => 0.190282857, 15866 => 0.194331437, 16190 => 0.198380016, 16519 => 0.202428596, 16853 => 0.206477176, 17190 => 0.210525755, 17532 => 0.214574335, 17879 => 0.218622915, 18229 => 0.222671495, 18584 => 0.226720074, 18943 => 0.230768654, 19306 => 0.234817234, 19674 => 0.238865814, 20045 => 0.242914393, 20421 => 0.246962973, 20801 => 0.251011553, 21186 => 0.255060132, 21574 => 0.259108712, 21966 => 0.263157292, 22363 => 0.267205872, 22763 => 0.271254451, 23168 => 0.275303031, 23576 => 0.279351611, 23989 => 0.28340019, 24405 => 0.28744877, 24825 => 0.29149735, 25249 => 0.29554593, 25677 => 0.299594509, 26109 => 0.303643089, 26544 => 0.307691669, 26983 => 0.311740248, 27425 => 0.315788828, 27871 => 0.319837408, 28321 => 0.323885988, 28774 => 0.327934567, 29230 => 0.331983147, 29690 => 0.336031727, 30153 => 0.340080306, 30619 => 0.344128886, 31089 => 0.348177466, 31561 => 0.352226046, 32037 => 0.356274625, 32515 => 0.360323205, 32997 => 0.364371785, 33481 => 0.368420365, 33968 => 0.372468944, 34458 => 0.376517524, 34950 => 0.380566104, 35445 => 0.384614683, 35942 => 0.388663263, 36442 => 0.392711843, 36944 => 0.396760423, 37448 => 0.400809002, 37955 => 0.404857582, 38463 => 0.408906162, 38974 => 0.412954741, 39486 => 0.417003321, 40001 => 0.421051901, 40517 => 0.425100481, 41034 => 0.42914906, 41553 => 0.43319764, 42074 => 0.43724622, 42596 => 0.441294799, 43119 => 0.445343379, 43644 => 0.449391959, 44170 => 0.453440539, 44696 => 0.457489118, 45224 => 0.461537698, 45753 => 0.465586278, 46282 => 0.469634857, 46812 => 0.473683437, 47342 => 0.477732017, 47873 => 0.481780597, 48405 => 0.485829176, 48936 => 0.489877756, 49468 => 0.493926336, 50000 => 0.497974916, 50532 => 0.502023495, 51064 => 0.506072075, 51595 => 0.510120655, 52127 => 0.514169234, 52658 => 0.518217814, 53188 => 0.522266394, 53718 => 0.526314974, 54247 => 0.530363553, 54776 => 0.534412133, 55304 => 0.538460713, 55830 => 0.542509292, 56356 => 0.546557872, 56881 => 0.550606452, 57404 => 0.554655032, 57926 => 0.558703611, 58447 => 0.562752191, 58966 => 0.566800771, 59483 => 0.57084935, 59999 => 0.57489793, 60514 => 0.57894651, 61026 => 0.58299509, 61537 => 0.587043669, 62045 => 0.591092249, 62552 => 0.595140829, 63056 => 0.599189408, 63558 => 0.603237988, 64058 => 0.607286568, 64555 => 0.611335148, 65050 => 0.615383727, 65542 => 0.619432307, 66032 => 0.623480887, 66519 => 0.627529466, 67003 => 0.631578046, 67485 => 0.635626626, 67963 => 0.639675206, 68439 => 0.643723785, 68911 => 0.647772365, 69381 => 0.651820945, 69847 => 0.655869525, 70310 => 0.659918104, 70770 => 0.663966684, 71226 => 0.668015264, 71679 => 0.672063843, 72129 => 0.676112423, 72575 => 0.680161003, 73017 => 0.684209583, 73456 => 0.688258162, 73891 => 0.692306742, 74323 => 0.696355322, 74751 => 0.700403901, 75175 => 0.704452481, 75595 => 0.708501061, 76011 => 0.712549641, 76424 => 0.71659822, 76832 => 0.7206468, 77237 => 0.72469538, 77637 => 0.728743959, 78034 => 0.732792539, 78426 => 0.736841119, 78814 => 0.740889699, 79199 => 0.744938278, 79579 => 0.748986858, 79955 => 0.753035438, 80326 => 0.757084017, 80694 => 0.761132597, 81057 => 0.765181177, 81416 => 0.769229757, 81771 => 0.773278336, 82121 => 0.777326916, 82468 => 0.781375496, 82810 => 0.785424076, 83147 => 0.789472655, 83481 => 0.793521235, 83810 => 0.797569815, 84134 => 0.801618394, 84455 => 0.805666974, 84771 => 0.809715554, 85083 => 0.813764134, 85391 => 0.817812713, 85694 => 0.821861293, 85993 => 0.825909873, 86288 => 0.829958452, 86578 => 0.834007032, 86864 => 0.838055612, 87146 => 0.842104192, 87424 => 0.846152771, 87698 => 0.850201351, 87967 => 0.854249931, 88232 => 0.85829851, 88493 => 0.86234709, 88750 => 0.86639567, 89003 => 0.87044425, 89251 => 0.874492829, 89496 => 0.878541409, 89736 => 0.882589989, 89973 => 0.886638568, 90205 => 0.890687148, 90434 => 0.894735728, 90658 => 0.898784308, 90879 => 0.902832887, 91096 => 0.906881467, 91308 => 0.910930047, 91518 => 0.914978626, 91723 => 0.919027206, 91924 => 0.923075786, 92122 => 0.927124366, 92316 => 0.931172945, 92507 => 0.935221525, 92693 => 0.939270105, 92877 => 0.943318685, 93056 => 0.947367264, 93232 => 0.951415844, 93405 => 0.955464424, 93574 => 0.959513003, 93740 => 0.963561583, 93903 => 0.967610163, 94062 => 0.971658743, 94218 => 0.975707322, 94371 => 0.979755902, 94520 => 0.983804482, 94666 => 0.987853061, 94810 => 0.991901641, 94950 => 0.995950221, 95087 => 1, // 95th Percentile 95221 => 1.00404738, 95352 => 1.00809596, 95480 => 1.01214454, 95606 => 1.016193119, 95728 => 1.020241699, 95848 => 1.024290279, 95965 => 1.028338859, 96080 => 1.032387438, 96191 => 1.036436018, 96300 => 1.040484598, 96407 => 1.044533177, 96511 => 1.048581757, 96613 => 1.052630337, 96712 => 1.056678917, 96808 => 1.060727496, 96903 => 1.064776076, 96995 => 1.068824656, 97084 => 1.072873236, 97172 => 1.076921815, 97257 => 1.080970395, 97340 => 1.085018975, 97421 => 1.089067554, 97500 => 1.093116134, 97577 => 1.097164714, 97652 => 1.101213294, 97725 => 1.105261873, 97796 => 1.109310453, 97865 => 1.113359033, 97932 => 1.117407612, 97998 => 1.121456192, 98062 => 1.125504772, 98124 => 1.129553352, 98184 => 1.133601931, 98243 => 1.137650511, 98300 => 1.141699091, 98355 => 1.14574767, 98409 => 1.14979625, 98461 => 1.15384483, 98512 => 1.15789341, 98562 => 1.161941989, 98610 => 1.165990569, 98656 => 1.170039149, 98702 => 1.174087728, 98745 => 1.178136308, 98788 => 1.182184888, 98829 => 1.186233468, 98870 => 1.190282047, 98909 => 1.194330627, 98946 => 1.198379207, 98983 => 1.202427786, 99018 => 1.206476366, 99053 => 1.210524946, 99086 => 1.214573526, 99119 => 1.218622105, 99150 => 1.222670685, 99180 => 1.226719265, 99210 => 1.230767845, 99238 => 1.234816424, 99266 => 1.238865004, 99292 => 1.242913584, 99318 => 1.246962163, 99343 => 1.251010743, 99367 => 1.255059323, 99391 => 1.259107903, 99413 => 1.263156482, 99435 => 1.267205062, 99456 => 1.271253642, 99477 => 1.275302221, 99496 => 1.279350801, 99515 => 1.283399381, 99534 => 1.287447961, 99552 => 1.29149654, 99569 => 1.29554512, 99585 => 1.2995937, 99601 => 1.303642279, 99617 => 1.307690859, 99632 => 1.311739439, 99646 => 1.315788019, 99660 => 1.319836598, 99674 => 1.323885178, 99687 => 1.327933758, 99699 => 1.331982337, 99711 => 1.336030917, 99723 => 1.340079497, 99734 => 1.344128077, 99744 => 1.348176656, 99755 => 1.352225236, 99765 => 1.356273816, 99774 => 1.360322396, 99784 => 1.364370975, 99793 => 1.368419555, 99801 => 1.372468135, 99809 => 1.376516714, 99817 => 1.380565294, 99825 => 1.384613874, 99832 => 1.388662454, 99839 => 1.392711033, 99846 => 1.396759613, 99853 => 1.400808193, 99859 => 1.404856772, 99865 => 1.408905352, 99871 => 1.412953932, 99876 => 1.417002512, 99882 => 1.421051091, 99887 => 1.425099671, 99892 => 1.429148251, 99896 => 1.43319683, 99901 => 1.43724541, 99905 => 1.44129399, 99910 => 1.44534257, 99914 => 1.449391149, 99917 => 1.453439729, 99921 => 1.457488309, 99925 => 1.461536888, 99928 => 1.465585468, 99931 => 1.469634048, 99934 => 1.473682628, 99937 => 1.477731207, 99940 => 1.481779787, 99943 => 1.485828367, 99946 => 1.489876946, 99948 => 1.493925526, 99950 => 1.497974106, 99953 => 1.502022686, 99955 => 1.506071265, 99957 => 1.510119845, 99959 => 1.514168425, 99961 => 1.518217005, 99963 => 1.522265584, 99965 => 1.526314164, 99966 => 1.530362744, 99968 => 1.534411323, 99969 => 1.538459903, 99971 => 1.542508483, 99972 => 1.546557063, 99974 => 1.550605642, 99975 => 1.554654222, 99976 => 1.558702802, 99977 => 1.562751381, 99978 => 1.566799961, 99979 => 1.570848541, 99980 => 1.574897121, 99981 => 1.5789457, 99982 => 1.58299428, 99983 => 1.58704286, 99984 => 1.591091439, 99985 => 1.595140019, 99986 => 1.603237179, 99987 => 1.607285758, 99988 => 1.615382918, 99989 => 1.623480077, 99990 => 1.627528657, 99991 => 1.635625816, 99992 => 1.647771556, 99993 => 1.655868715, 99994 => 1.672063034, 99995 => 1.684208773, 99996 => 1.704451672, 99997 => 1.712548831 ); } $r = mt_rand(0,100000); //echo $r." = "; reset($bell_curve); while (list($key,$val)=each($bell_curve)){ if ($key>=$r) { return $min + $val * ($max-$min); } } //We're above 0.99997 return $min + $val * ($max-$min); //below optomizations don't work atm. echo $r." = "; $index="0.00000"; for ($n = 0; $n=7){ return $min + $bell_curve[(float)$f] * ($max-$min); } $o = strlen($f)-2; $o = pow(10,$o); // $o is orders of magnitude of our current closest index match for ($n = 0; $n<10000; $n++){ $x = $n / $o; if (isset($bell_curve[(float)($f+$x)])) return $min + $bell_curve[(float)($f+$x)] * ($max-$min); if (isset($bell_curve[(float)($f-$x)])) return $min + $bell_curve[(float)($f-$x)] * ($max-$min); } echo "\n
Unable to locate random value, \$r was $r
\n"; } ?>