pgregory.net/rand@v1.0.3-0.20230808192358-a0b8ce02f4da/std_normal.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE-go file. 4 5 package rand 6 7 import ( 8 "math" 9 ) 10 11 /* 12 * Normal distribution 13 * 14 * See "The Ziggurat Method for Generating Random Variables" 15 * (Marsaglia & Tsang, 2000) 16 * http://www.jstatsoft.org/v05/i08/paper [pdf] 17 * 18 * Fixed correlation and increased number of distinct results generated, 19 * see https://github.com/flyingmutant/rand/issues/3 20 */ 21 22 const ( 23 rn = 3.6541528853610088 24 ) 25 26 func absInt64(i int64) uint64 { 27 if i < 0 { 28 return uint64(-i) 29 } 30 return uint64(i) 31 } 32 33 // NormFloat64 returns a normally distributed float64 in 34 // the range -math.MaxFloat64 through +math.MaxFloat64 inclusive, 35 // with standard normal distribution (mean = 0, stddev = 1). 36 // To produce a different normal distribution, callers can 37 // adjust the output using: 38 // 39 // sample = NormFloat64() * desiredStdDev + desiredMean 40 func (r *Rand) NormFloat64() float64 { 41 for { 42 v := r.Uint64() 43 j := int64(v) >> 11 // Possibly negative 44 i := v & 0xFF 45 x := float64(j) * wn[i] 46 if absInt64(j) < kn[i] { 47 // This case should be hit better than 99% of the time. 48 return x 49 } 50 51 if i == 0 { 52 // This extra work is only required for the base strip. 53 for { 54 x = -math.Log(r.Float64()) * (1.0 / rn) 55 y := -math.Log(r.Float64()) 56 if y+y >= x*x { 57 break 58 } 59 } 60 if j > 0 { 61 return rn + x 62 } 63 return -rn - x 64 } 65 if fn[i]+r.Float64()*(fn[i-1]-fn[i]) < math.Exp(-.5*x*x) { 66 return x 67 } 68 } 69 } 70 71 // NormFloat64 returns a normally distributed float64 in 72 // the range -math.MaxFloat64 through +math.MaxFloat64 inclusive, 73 // with standard normal distribution (mean = 0, stddev = 1). 74 // To produce a different normal distribution, callers can 75 // adjust the output using: 76 // 77 // sample = NormFloat64() * desiredStdDev + desiredMean 78 func NormFloat64() float64 { 79 for { 80 v := Uint64() 81 j := int64(v) >> 11 // Possibly negative 82 i := v & 0xFF 83 x := float64(j) * wn[i] 84 if absInt64(j) < kn[i] { 85 // This case should be hit better than 99% of the time. 86 return x 87 } 88 89 if i == 0 { 90 // This extra work is only required for the base strip. 91 for { 92 x = -math.Log(Float64()) * (1.0 / rn) 93 y := -math.Log(Float64()) 94 if y+y >= x*x { 95 break 96 } 97 } 98 if j > 0 { 99 return rn + x 100 } 101 return -rn - x 102 } 103 if fn[i]+Float64()*(fn[i-1]-fn[i]) < math.Exp(-.5*x*x) { 104 return x 105 } 106 } 107 } 108 109 var kn = [256]uint64{ 110 0xef33d8025bc39, 0x0, 0xc08be98f2acaa, 0xda354faba4236, 111 0xe51f67ec049b5, 0xeb255e9d2fa41, 0xeef4b817e221c, 0xf19470af9cc80, 112 0xf37ed61ff712f, 0xf4f469560df95, 0xf61a5e41b6be3, 0xf707a75536926, 113 0xf7cb2ec281ec3, 0xf86f10c6337d8, 0xf8fa657830a7d, 0xf9724c74db926, 114 0xf9da907dbe051, 0xfa360f581e82e, 0xfa86fde5b3bbf, 0xfacf160d34659, 115 0xfb0fb6718ac00, 0xfb49f8d5368f8, 0xfb7ec2366f3be, 0xfbaece9a1db40, 116 0xfbdab9d0402f4, 0xfc03060ff6416, 0xfc28210379aaa, 0xfc4a67ae254c3, 117 0xfc6a2977ae7a2, 0xfc87aa928908b, 0xfca325e4bd8d3, 0xfcbcce9021dc6, 118 0xfcd4d12f834c6, 0xfceb54d8fe7e8, 0xfd007bf1dc4c6, 0xfd1464dd6c0ba, 119 0xfd272a8e2f060, 0xfd38e4ff0c565, 0xfd49a9990b0f2, 0xfd598b8920bf9, 120 0xfd689c08e96bd, 0xfd76ea9c8e52a, 0xfd848547b0606, 0xfd9178bad29cc, 121 0xfd9dd07a7ab32, 0xfda9970105c08, 0xfdb4d5dc02bb8, 0xfdbf95c5bfa83, 122 0xfdc9debb99848, 0xfdd3b8118707e, 0xfddd288342d86, 0xfde6364369d6f, 123 0xfdeee708d4f6d, 0xfdf7401a6b25d, 0xfdff46599eb80, 0xfe06fe4bc2343, 124 0xfe0e6c225a0b8, 0xfe1593c28b6ba, 0xfe1c78cbc3e15, 0xfe231e9db1b32, 125 0xfe29885da1a27, 0xfe2fb8fb54027, 0xfe35b33558bf6, 0xfe3b799cffee1, 126 0xfe410e99eac3f, 0xfe46746d475ff, 0xfe4bad34c082f, 0xfe50baed29401, 127 0xfe559f74ebb5b, 0xfe5a5c8e410ff, 0xfe5ef3e13857d, 0xfe6366fd90f75, 128 0xfe67b75c6d47c, 0xfe6be661e10b4, 0xfe6ff55e5f402, 0xfe73e5900a617, 129 0xfe77b823e9d56, 0xfe7b6e3706fc3, 0xfe7f08d77416b, 0xfe8289053efb9, 130 0xfe85efb35166d, 0xfe893dc84079b, 0xfe8c741f0cdf8, 0xfe8f9387d4e36, 131 0xfe929cc879a62, 0xfe95909d38833, 0xfe986fb9399ee, 0xfe9b3ac7147b7, 132 0xfe9df2694b62a, 0xfea0973abe5d4, 0xfea329cf16600, 0xfea5aab32948c, 133 0xfea81a6d5737c, 0xfeaa797de1c56, 0xfeacc85f3d889, 0xfeaf07865e5a9, 134 0xfeb13762feb82, 0xfeb3585fe29bd, 0xfeb56ae316229, 0xfeb76f4e28471, 135 0xfeb965fe61f8d, 0xfebb4f4cf9cf9, 0xfebd2b8f4494f, 0xfebefb16e2dbf, 136 0xfec0be31ebd6c, 0xfec2752b1599a, 0xfec42049daf5b, 0xfec5bfd29f121, 137 0xfec75406cee81, 0xfec8dd2500c42, 0xfeca5b6911ea1, 0xfecbcf0c42790, 138 0xfecd38454faa9, 0xfece97488c84a, 0xfecfec47f914f, 0xfed13773584c1, 139 0xfed278f84489e, 0xfed3b10242ee8, 0xfed4dfbad580c, 0xfed605498c37d, 140 0xfed721d414f89, 0xfed8357e4a924, 0xfed9406a42c6d, 0xfeda42b85b6a9, 141 0xfedb3c8746a5a, 0xfedc2df4165fa, 0xfedd171a46dfb, 0xfeddf813c8a7d, 142 0xfeded0f90992c, 0xfedfa1e0fd3c0, 0xfee06ae124b72, 0xfee12c0d959b5, 143 0xfee1e57900690, 0xfee29734b64d6, 0xfee34150ae46f, 0xfee3e3db89af0, 144 0xfee47ee2982a8, 0xfee51271db03c, 0xfee59e9407ef7, 0xfee623528b3e5, 145 0xfee6a0b5897a9, 0xfee716c3e0734, 0xfee7858327b3b, 0xfee7ecf7b0674, 146 0xfee84d2484a6e, 0xfee8a60b66300, 0xfee8f7accc80f, 0xfee94207e2598, 147 0xfee9851a829aa, 0xfee9c0e13481a, 0xfee9f557273b4, 0xfeea22762cc6f, 148 0xfeea4836b426d, 0xfeea668fc2d34, 0xfeea7d76ed6bc, 0xfeea8ce04f9ce, 149 0xfeea94be83300, 0xfeea9502963d4, 0xfeea8d9c00723, 0xfeea7e789761a, 150 0xfeea678481cec, 0xfeea48aa29e4a, 0xfeea21d22e4a2, 0xfee9f2e351fed, 151 0xfee9bbc26aef8, 0xfee97c524f2ad, 0xfee93473c0a03, 0xfee8e405574e0, 152 0xfee88ae369c44, 0xfee828e7f3dc8, 0xfee7bdea7b854, 0xfee749bff37cb, 153 0xfee6cc3a9bd2b, 0xfee64529e004d, 0xfee5b45a32857, 0xfee51994e5784, 154 0xfee474a00069d, 0xfee3c53e12c1e, 0xfee30b2e02aa7, 0xfee2462ad81d4, 155 0xfee175eb83c2a, 0xfee09a22a1417, 0xfedfb27e3499c, 0xfedebea76213e, 156 0xfeddbe422044f, 0xfedcb0ece39a5, 0xfedb964042cc6, 0xfeda6dce9389c, 157 0xfed937237e95f, 0xfed7f1c38a80a, 0xfed69d2b9bffe, 0xfed538d06add3, 158 0xfed3c41dea3f7, 0xfed23e76a2fac, 0xfed0a732fe617, 0xfecefda07fe08, 159 0xfecd4100eb78d, 0xfecb708956e89, 0xfec98b6123096, 0xfec790a0da94e, 160 0xfec57f50f31d4, 0xfec356686c938, 0xfec114cb4b30b, 0xfebeb948e6fa6, 161 0xfebc429a0b668, 0xfeb9af5ee0cb3, 0xfeb6fe1c98519, 0xfeb42d3ad1f75, 162 0xfeb13b00b2d23, 0xfeae2591a02c0, 0xfeaaeae99222d, 0xfea788d8ee2fe, 163 0xfea3fcffd73bc, 0xfea044c8dd9ce, 0xfe9c5d62f5612, 0xfe9843ba9477a, 164 0xfe93f471d4700, 0xfe8f6bd76c5ad, 0xfe8aa5dc4e8bd, 0xfe859e07ab1c1, 165 0xfe804f690a917, 0xfe7ab48823396, 0xfe74c751f6a7c, 0xfe6e8102aa1d9, 166 0xfe67da0b6abaf, 0xfe60c9f383055, 0xfe5947338f718, 0xfe51470977256, 167 0xfe48bd436f42d, 0xfe3f9bffd1e0d, 0xfe35d35eeb171, 0xfe2b5122fe4d2, 168 0xfe2000399552b, 0xfe13c827882e8, 0xfe068c4ee6783, 0xfdf82b02b717d, 169 0xfde87c57efe7c, 0xfdd7509c63bce, 0xfdc46e529bee3, 0xfdaf8f82e0252, 170 0xfd985e1b2ba43, 0xfd7e6ef48ced0, 0xfd613adbd64d6, 0xfd40149e2efda, 171 0xfd1a1a7b4c772, 0xfcee204761f61, 0xfcba8d85e1171, 0xfc7d26ecd2cde, 172 0xfc32b2f1e22a1, 0xfbd6581c0b7e7, 0xfb606c40053d6, 0xfac40582a2805, 173 0xf9e971e014510, 0xf89fa48a41d49, 0xf66c5f7f02f1a, 0xf1a5a4b331a0a, 174 } 175 var wn = [256]float64{ 176 8.683627060828348e-16, 4.7793301741377593e-17, 6.354352416410258e-17, 177 7.454870480493524e-17, 8.329366815173283e-17, 9.068060404526806e-17, 178 9.714860076096846e-17, 1.0294750313816509e-16, 1.0823430288059529e-16, 179 1.131147019575026e-16, 1.1766359456688471e-16, 1.2193617278400444e-16, 180 1.259743991434077e-16, 1.2981099885983e-16, 1.3347203736556521e-16, 181 1.3697864842315511e-16, 1.4034823000997335e-16, 1.4359529451821483e-16, 182 1.4673208742137644e-16, 1.4976904668172175e-16, 1.5271515003384589e-16, 183 1.555781816925582e-16, 1.5836494009092097e-16, 1.6108140175081857e-16, 184 1.6373285203782092e-16, 1.663239905823803e-16, 1.6885901708498427e-16, 185 1.7134170176385843e-16, 1.737754436569514e-16, 1.7616331922835136e-16, 186 1.7850812316814515e-16, 1.808124028564039e-16, 1.830784876467126e-16, 187 1.8530851388465636e-16, 1.8750444639224454e-16, 1.8966809700628152e-16, 188 1.9180114064694707e-16, 1.9390512930483762e-16, 1.9598150426489938e-16, 189 1.9803160682991647e-16, 2.0005668776139063e-16, 2.0205791561939557e-16, 190 2.04036384153502e-16, 2.05993118872757e-16, 2.079290829028794e-16, 191 2.0984518222246138e-16, 2.1174227035637925e-16, 2.1362115259329185e-16, 192 2.154825897846245e-16, 2.1732730177446983e-16, 2.1915597050311456e-16, 193 2.2096924282121022e-16, 2.2276773304676727e-16, 2.2455202529302963e-16, 194 2.263226755917567e-16, 2.280802138334151e-16, 2.298251455431733e-16, 195 2.3155795350934717e-16, 2.3327909927899507e-16, 2.349890245336731e-16, 196 2.3668815235689126e-16, 2.3837688840352904e-16, 2.4005562198034833e-16, 197 2.417247270457588e-16, 2.4338456313612944e-16, 2.45035476225179e-16, 198 2.4667779952231006e-16, 2.483118542151581e-16, 2.4993795016110423e-16, 199 2.515563865320341e-16, 2.531674524162133e-16, 2.547714273807808e-16, 200 2.5636858199803476e-16, 2.579591783383904e-16, 2.595434704326291e-16, 201 2.6112170470582226e-16, 2.626941203851009e-16, 2.6426094988325525e-16, 202 2.658224191599747e-16, 2.6737874806238796e-16, 2.689301506464206e-16, 203 2.704768354803659e-16, 2.7201900593194673e-16, 2.735568604400485e-16, 204 2.7509059277220414e-16, 2.7662039226883326e-16, 2.781464440751553e-16, 205 2.796689293616304e-16, 2.811880255337159e-16, 2.8270390643166804e-16, 206 2.8421674252106693e-16, 2.8572670107469254e-16, 2.872339463463364e-16, 207 2.887386397370925e-16, 2.9024093995463437e-16, 2.917410031659504e-16, 208 2.932389831439797e-16, 2.9473503140856054e-16, 2.962292973620791e-16, 209 2.977219284201808e-16, 2.9921307013788453e-16, 3.0070286633142155e-16, 210 3.021914591960998e-16, 3.036789894204789e-16, 3.051655962971256e-16, 211 3.066514178302041e-16, 3.0813659084014326e-16, 3.0962125106561063e-16, 212 3.111055332630124e-16, 3.125895713037277e-16, 3.140734982692771e-16, 213 3.1555744654461713e-16, 3.1704154790974445e-16, 3.1852593362978663e-16, 214 3.200107345437515e-16, 3.214960811520994e-16, 3.2298210370330056e-16, 215 3.2446893227953307e-16, 3.259566968816753e-16, 3.2744552751374225e-16, 216 3.2893555426691263e-16, 3.3042690740329255e-16, 3.319197174395589e-16, 217 3.334141152306249e-16, 3.3491023205346944e-16, 3.36408199691272e-16, 218 3.3790815051799436e-16, 3.394102175835521e-16, 3.409145346997195e-16, 219 3.4242123652691244e-16, 3.4393045866199745e-16, 3.4544233772727637e-16, 220 3.4695701146079997e-16, 3.4847461880816654e-16, 3.4999530001596677e-16, 221 3.5151919672703956e-16, 3.530464520777096e-16, 3.545772107971826e-16, 222 3.5611161930928127e-16, 3.5764982583671083e-16, 3.591919805080521e-16, 223 3.6073823546768757e-16, 3.622887449888749e-16, 3.6384366559019343e-16, 224 3.654031561555992e-16, 3.669673780583355e-16, 3.6853649528895996e-16, 225 3.7011067458776154e-16, 3.716900855818571e-16, 3.732749009272723e-16, 226 3.748652964563299e-16, 3.7646145133068695e-16, 3.7806354820038313e-16, 227 3.7967177336928453e-16, 3.8128631696733085e-16, 3.8290737313002033e-16, 228 3.845351401855949e-16, 3.861698208504168e-16, 3.878116224330635e-16, 229 3.8946075704770037e-16, 3.9111744183733115e-16, 3.9278189920756767e-16, 230 3.9445435707160404e-16, 3.961350491071327e-16, 3.978242150259902e-16, 231 3.995221008573812e-16, 4.0122895924559043e-16, 4.0294504976316303e-16, 232 4.04670639240608e-16, 4.0640600211376074e-16, 4.081514207900323e-16, 233 4.0990718603486777e-16, 4.1167359737984636e-16, 4.1345096355397e-16, 234 4.1523960293981785e-16, 4.1703984405638327e-16, 4.1885202607056557e-16, 235 4.206764993394585e-16, 4.2251362598576456e-16, 4.243637805088701e-16, 236 4.2622735043434475e-16, 4.281047370048792e-16, 4.299963559159534e-16, 237 4.3190263809983563e-16, 4.338240305618544e-16, 4.3576099727326276e-16, 238 4.3771402012543917e-16, 4.396835999506351e-16, 4.4167025761500585e-16, 239 4.4367453519024474e-16, 4.456969972107949e-16, 4.477382320243465e-16, 240 4.497988532441506e-16, 4.51879501312604e-16, 4.53980845186604e-16, 241 4.561035841563454e-16, 4.582484498105623e-16, 4.604162081627235e-16, 242 4.626076619543954e-16, 4.64823653153934e-16, 4.670650656708789e-16, 243 4.693328283089512e-16, 4.71627917983456e-16, 4.739513632322101e-16, 244 4.763042480529397e-16, 4.786877161045007e-16, 4.811029753143727e-16, 245 4.83551302940786e-16, 4.860340511447171e-16, 4.885526531349988e-16, 246 4.911086299591681e-16, 4.937035980236772e-16, 4.96339277440045e-16, 247 4.990175013088311e-16, 5.017402260714605e-16, 5.045095430815269e-16, 248 5.07327691573011e-16, 5.101970732338156e-16, 5.131202686303404e-16, 249 5.161000557739877e-16, 5.191394311754375e-16, 5.222416337996938e-16, 250 5.254101724174328e-16, 5.286488569501704e-16, 5.319618345335188e-16, 251 5.353536311813313e-16, 5.388292001330899e-16, 5.423939782198587e-16, 252 5.460539519071686e-16, 5.49815735088975e-16, 5.536866612464843e-16, 253 5.576748932923575e-16, 5.617895553552448e-16, 5.660408920079487e-16, 254 5.704404621288487e-16, 5.750013768917029e-16, 5.797385945721764e-16, 255 5.846692893452686e-16, 5.898133176475145e-16, 5.951938149638729e-16, 256 6.008379696269235e-16, 6.067780409330819e-16, 6.130527208722697e-16, 257 6.19708989457909e-16, 6.268046963298801e-16, 6.34412240712508e-16, 258 6.426239659545692e-16, 6.515603317342698e-16, 6.613827885095446e-16, 259 6.723150462503459e-16, 6.846803417562237e-16, 6.989718336385731e-16, 260 7.159994934828948e-16, 7.372424301797334e-16, 7.658936370804535e-16, 261 8.113849337656484e-16, 262 } 263 var fn = [256]float64{ 264 1, 0.9771017012827313, 0.9598790918124159, 0.945198953453078, 265 0.9320600759689902, 0.9199915050483602, 0.9087264400605629, 266 0.898095921906304, 0.8879846607633999, 0.8783096558161468, 267 0.8690086880437932, 0.8600336212030086, 0.8513462584651237, 268 0.8429156531184411, 0.8347162929929304, 0.8267268339520942, 269 0.8189291916094148, 0.8113078743182199, 0.8038494831763895, 270 0.7965423304282546, 0.7893761435711986, 0.7823418326598619, 271 0.7754313049861383, 0.7686373158033348, 0.7619533468415464, 272 0.7553735065117544, 0.7488924472237266, 0.7425052963446361, 273 0.7362075981312666, 0.7299952645658023, 0.7238645334728815, 274 0.7178119326349013, 0.7118342488823584, 0.7059285013367973, 275 0.7000919181404901, 0.6943219161300326, 0.6886160830085271, 276 0.6829721616487914, 0.6773880362225131, 0.6718617199007664, 277 0.6663913439123806, 0.6609751477802414, 0.6556114705832247, 278 0.6502987431142946, 0.645035480824252, 0.6398202774564391, 279 0.6346517992909602, 0.6295287799281284, 0.6244500155502744, 280 0.6194143606090393, 0.6144207238920769, 0.6094680649288955, 281 0.6045553907005496, 0.5996817526221677, 0.5948462437709913, 282 0.590047996335792, 0.5852861792663003, 0.5805599961036835, 283 0.5758686829752105, 0.571211506738075, 0.5665877632589518, 284 0.5619967758172779, 0.5574378936214863, 0.5529104904285199, 285 0.5484139632579211, 0.5439477311926499, 0.5395112342595446, 286 0.5351039323830196, 0.5307253044061938, 0.5263748471741866, 287 0.5220520746747948, 0.5177565172322006, 0.513487720749743, 288 0.5092452459981361, 0.5050286679458288, 0.5008375751284821, 289 0.4966715690547963, 0.49253026364614866, 0.48841328470771206, 290 0.4843202694289116, 0.4802508659112497, 0.4762047327216837, 291 0.47218153846988326, 0.46818096140782217, 0.46420268905027884, 292 0.4602464178149235, 0.45631185268077357, 0.4523987068638825, 293 0.44850670150921407, 0.44463556539772775, 0.4407850346677699, 294 0.4369548525499293, 0.4331447691145741, 0.4293545410313415, 295 0.4255839313399006, 0.4218327092313533, 0.4181006498396846, 296 0.4143875340427068, 0.41069314827198333, 0.4070172843312482, 297 0.4033597392228691, 0.3997203149819319, 0.39609881851754736, 298 0.392495061461011, 0.3889088600204649, 0.38534003484173424, 299 0.38178841087503157, 0.37825381724723833, 0.3747360871394917, 300 0.3712350576698216, 0.3677505697805964, 0.3642824681305497, 301 0.36083060099117575, 0.3573948201472905, 0.3539749808015693, 302 0.3505709414828812, 0.3471825639582515, 0.34380971314829134, 303 0.3404522570459455, 0.33711006663841303, 0.3337830158321087, 304 0.3304709813805374, 0.3271738428149589, 0.32389148237773235, 305 0.3206237849582305, 0.3173706380312227, 0.3141319315976303, 306 0.3109075581275639, 0.30769741250555394, 0.30450139197789644, 307 0.3013193961020341, 0.29815132669790134, 0.29499708780116257, 308 0.291856585618281, 0.28872972848335393, 0.2856164268166581, 309 0.2825165930848494, 0.2794301417627653, 0.27635698929678126, 310 0.2732970540696758, 0.27025025636696004, 0.267216518344632, 311 0.2641957639983178, 0.261187919133764, 0.2581929113386483, 312 0.2552106699556775, 0.25224112605694415, 0.2492842124195171, 313 0.2463398635022391, 0.24340801542371232, 0.24048860594144947, 314 0.23758157443217398, 0.234686861873253, 0.23180441082524889, 315 0.22893416541557776, 0.22607607132326513, 0.22323007576478984, 316 0.2203961274810118, 0.2175741767251786, 0.2147641752520087, 317 0.21196607630785308, 0.2091798346219358, 0.2064054063986795, 318 0.20364274931112164, 0.2008918224954315, 0.19815258654653828, 319 0.1954250035148857, 0.192709036904329, 0.19000465167119332, 320 0.18731181422451715, 0.18463049242750473, 0.18196065560021674, 321 0.17930227452353056, 0.17665532144440677, 0.17401977008249953, 322 0.1713955956381557, 0.16878277480185033, 0.16618128576511007, 323 0.16359110823298295, 0.16101222343811766, 0.15844461415652022, 324 0.15588826472506456, 0.15334316106083767, 0.15080929068241017, 325 0.1482866427331287, 0.14577520800653793, 0.14327497897404712, 326 0.1407859498149683, 0.13830811644906432, 0.13584147657175735, 327 0.13338602969216284, 0.13094177717412817, 0.12850872228047364, 328 0.12608687022065035, 0.1236762282020514, 0.12127680548523544, 329 0.1188886134433458, 0.11651166562603717, 0.11414597782825531, 330 0.11179156816424568, 0.10944845714721012, 0.10711666777507302, 331 0.10479622562286714, 0.10248715894230628, 0.10018949876917202, 332 0.09790327903921563, 0.09562853671335333, 0.09336531191302662, 333 0.09111364806670073, 0.08887359206859424, 0.08664519445086778, 334 0.08442850957065465, 0.08222359581349568, 0.08003051581494751, 335 0.07784933670237221, 0.07568013035919496, 0.07352297371424099, 336 0.07137794905914197, 0.06924514439725027, 0.06712465382802399, 337 0.06501657797147044, 0.06292102443797785, 0.060838108349751806, 338 0.058767952921137984, 0.05671069010639947, 0.054666461325077916, 339 0.05263541827697365, 0.05061772386112179, 0.048613553216035145, 340 0.046623094902089664, 0.044646552251446536, 0.04268414491661938, 341 0.04073611065607875, 0.038802707404656925, 0.03688421568869116, 342 0.03498094146183307, 0.0330932194586887, 0.03122141719202369, 343 0.02936593975823011, 0.02752723566969332, 0.025705804008632656, 344 0.023902203305873237, 0.022117062707379922, 0.020351096230109354, 345 0.01860512127578335, 0.01688008315259584, 0.015177088307982072, 346 0.013497450601780807, 0.011842757857943104, 0.0102149714397311, 347 0.008616582769422919, 0.00705087547139211, 0.005522403299264754, 348 0.0040379725933718715, 0.002609072746106363, 0.0012602859304985978, 349 }