Skip to content

Instantly share code, notes, and snippets.

@hcs64
Last active August 29, 2015 14:04
Show Gist options
  • Save hcs64/25f4aeb2bfad73f409fb to your computer and use it in GitHub Desktop.
Save hcs64/25f4aeb2bfad73f409fb to your computer and use it in GitHub Desktop.
#!/usr/bin/python2
# Adam Gashlin
# compute number of possible canonical Huffman trees
from math import log, pow, factorial, ceil
from sys import argv
def f(n):
return sum(map(lambda i: g(n, i), range(2,n+1)))
gmemo={}
def g(n, m):
# successfully reached root
if n == 1 and m == 1: return 1
# otherwise odd count is impossible
if not m%2 == 0: return 0
# try to memoize
if (n,m) in gmemo: return gmemo[(n,m)]
# number of parents needed
p = m/2
# Try the preceeding row with j = 0 .. n-p leaves
result = sum(map(lambda j: g(n-p, j+p), range(0, n-p+1)))
gmemo[(n,m)] = result
return result
# number of unique canonical huffman codes for n symbols
# as above but each row is weighted by how many ways symbols could
# be chosen for that row
def totalf(n):
return sum(map(lambda i: totalg(n, i, i, n), range(2,n+1)))
tgmemo={}
def totalg(n, m, leaves, outofleaves):
if n == 1 and m == 1: return 1
if not m%2 == 0: return 0
#print n,m,leaves,outofleaves
if (n,m,leaves,outofleaves) in tgmemo: return tgmemo[(n,m,leaves,outofleaves)]
p = m/2
result = sum(map(lambda j: totalg(n-p, j+p, j, outofleaves-leaves), range(0, n-p+1)))
if result > 0:
result = result * choose(outofleaves, leaves)
tgmemo[(n,m,leaves,outofleaves)] = result
return result
def choose(n, k):
return factorial(n)/factorial(n-k)/factorial(k)
# approximation from Elsholtz, C. and Heuberger, C. and Prodinger, H
# "The number of Huffman codes, compact trees, and sums of unit fractions"
# http://arxiv.org/abs/1108.5964
def c(n):
r = 1.794147187541686
r2 = 1.279549134726681
R = 0.1418532020854094
R2 = 0.0612410410312
return R*pow(r,n+1) + R2*pow(r2,n+1)
def cerr(n):
r3=1.123
R3=36.6
return R3*pow(r3,n)
if len(argv) != 2:
print "N?",
n = input()
else:
n = int(argv[1])
print "N="+str(n)
fn = f(n)
cn = int(c(n-1))
print "tree shapes:", fn
#print "approx ", cn, "+/-", int(cerr(n-1))
#print "epsilon", (fn-cn)/cerr(n-1)
#print "log", log(fn, 2), log(fn, 2) / n
print "log", log(fn, 2), ceil(log(fn, 2)) / n
tfn = totalf(n)
print "\n", "codes: ", tfn
print "log", log(tfn, 2), ceil(log(tfn, 2)) / n
# limit ln(0.1418532020854094*1.794147187541686^(n+1)+0.0612410410312*1.279549134726681^(n+1))/ln(2)/n as n->infinity
(trusty)agashlin@localhost:~$ time python2 canonical_huffman_counts.py 256
N=256
tree shapes: 13788109316193398760509765175356452504016251802903691504922316058
log 213.066822715 0.8359375
codes: 8285346724771732535579230927811728168225327017722462710912569952590592004664032454495237136142941895785078262147962368331361599881152082917372513656538259471687747109280004266012452128176975946933606710323650083945073453117518096515176061298715602008155503184006958338547855520939548550332963652842058130953747425433798699820856676738318852909858907005439087597925996232864907266148000299240930374128476953278616257986858763338907603637216088492899959322872821380124860154009008128820158384145333423773537835219430522105956061
log 1747.06281189 6.828125
real 5m23.938s
user 5m22.288s
sys 0m1.141s
*****
agashlin@agashlin-Precision-T1650:~$ time python2 canonical_huffman_counts.py 512
N=512
tree shapes: 1340202094280772188311632768455468546667114379230305903561172619204126108426146729352116199705307898650585392491893460955175433039
log 428.951174807 0.837890625
codes: 130543968648909935645619978314506199133389373797299014745284479550762983437367255233670435044808313250764359065728423004032004608065848894571505826670455394640991889375619266424991352891302978695197167722798555618281818682649143195543518016390569877640861863370691997318274527421346019417524582433041116809880889867424321364032714685392358083840279608422438782129736413402461432078131916796011704051646947581057820559602866606739572716814208850992558031818839338767623079029478288336120632105792973738976049157860130308187265646400436875151268213443781443429318309937159695295759628843440630582763886541058420747630453605779123282347762718429054014361763661102786229823648838163279876939286908648487229588663143124088346153807532756358016401266132533275456707353151330540453873220380156888184091463890300550149118134624197363284659411757055713475994372095563294899007800565676564125605634696829100406156111640743521926330801210206403996024353699141629507520060375828938630983225821686266007354728273606402342314349822772687935604830298698945257709936417451477065873892367680407801897779441138214105776416739701786498391289198673549465505266647144341576153308420550328474567606268110378607529487122195295965
log 4003.30789014 7.8203125
real 21m50.118s
user 21m35.738s
sys 0m12.831s
Bits per symbol for tree shape and symbol length, generated by the PARI program
f(n)={my(M); if(n>1, M=matrix(n, n); M[2, 1] = 1; for(k=3, n, for(l=1, k-2, M[k, l] = 0; smx = min(2*l, k-l-1); for(s=1, smx, M[k, l] += binomial(k+l-1, 2*l-s)*M[k-l, s])); M[k, k-1] = 1); M[n, 1], 1)}
from
https://oeis.org/A007178
using
log(f(n))/log(2)/n
2 0.E-38
3 0.52832083357371872715124631464927216959
4 0.92510992953527304009920316356417368341
5 1.2457637380991761754388755605853193721
6 1.5060289354255808307727245200264046115
7 1.7265434828968693605853334847482784542
8 1.9164914520228209107566102141912770530
9 2.0836250720759120139542034095113382346
10 2.2326599826685215080710971565829405663
11 2.3672027476998588383456295230261167467
12 2.4898160122666358680078862023210117594
13 2.6024722090051311199227104042881213214
14 2.7066802617183810840531621619925665327
15 2.8036352190679852998219391203660304857
16 2.8942924836121595260854783884678139337
17 2.9794304422204135869251441471335531066
18 3.0596904802907368497499321475523973205
19 3.1356078394871863409008875967173986922
20 3.2076336576195233011506616103465012206
21 3.2761518376411853299566964211879428845
22 3.3414917818686202654551133948847671185
23 3.4039382912461329159651573288617929325
24 3.4637392928075207199737841185321285864
25 3.5211119681597462477165093021986236891
26 3.5762476535688512139407970267758657750
27 3.6293158004309365053626744991488107986
28 3.6804672026732631347160559532409799401
29 3.7298366491205211606863386350621527077
30 3.7775451193919761986199602575848753728
31 3.8237016147639467601216515732013330279
32 3.8684046945406066818789240637660185499
33 3.9117437731334239933560128378031791271
34 3.9538002212942542485845641054535987773
35 3.9946483060179710050654663197327435291
36 4.0343559967202001529635998891505609516
37 4.0729856599326350078321333114687250635
38 4.1105946605514163109395879910090973922
39 4.1472358843550403322487801968073071530
40 4.1829581938694850805546603519806231419
41 4.2178068275475861986341918945142290309
42 4.2518237505306594590993079793997345509
43 4.2850479638848848644058485858979470688
44 4.3175157780852015495325142671947591136
45 4.3492610556031277522668215976786190509
46 4.3803154267013116673151455816844696667
47 4.4107084819149095353755146904142901427
48 4.4404679441830163716761777900058696594
49 4.4696198231625088469860112038284600644
50 4.4981885538960125780907846201523369606
51 4.5261971217026492562035177654875012411
52 4.5536671749046000172482401639586024054
53 4.5806191267861396538651659570547959107
54 4.6070722479979976745520565206520375779
55 4.6330447504632643579100075842100245597
56 4.6585538637071455396129840632629051540
57 4.6836159044180333111435264851185402700
58 4.7082463399485944469276613029732698694
59 4.7324598463803953621613869552719305371
60 4.7562703617019142024839327246189232472
61 4.7796911345859138641461654397871279193
62 4.8027347691966230359375708850453455975
63 4.8254132664087865399227915897218071133
64 4.8477380617783837396456637998955019842
65 4.8697200605678157103193747582280274383
66 4.8913696700959012414422961694077059239
67 4.9126968296544815178472854516221261332
68 4.9337110382082883592961452704996589139
69 4.9544213800725331132500599926169992546
70 4.9748365487430394085438731731790639688
71 4.9949648690363443378599451435717464796
72 5.0148143176817467733275207525437377772
73 5.0343925424935450991518469364337701000
74 5.0537068802394695857918039537759160913
75 5.0727643733103951673925994914037176155
76 5.0915717852866609260118280713293946314
77 5.1101356154875862216779549474345767322
78 5.1284621125829409582014913565851654742
79 5.1465572873380949999089542162593439241
80 5.1644269245582484333667719763696947572
81 5.1820765942914507002940854698000394303
82 5.1995116623449828993372095899960148315
83 5.2167373001650425280804235021874311519
84 5.2337584941254797315266097591665059211
85 5.2505800542675412533296938711291071616
86 5.2672066225291408348903779248832490309
87 5.2836426804990557176024183729661105671
88 5.2998925567286153638212971383724496629
89 5.3159604336308714280887956865887396082
90 5.3318503539948915459927222422456956313
91 5.3475662271406806894049249722266505874
92 5.3631118347382822058348555390089243510
93 5.3784908363128279747928060333044411874
94 5.3937067744556770888996400092262252444
95 5.4087630797602905423883619869741833135
96 5.4236630755001225524688803829587087662
97 5.4384099820645556705721971624573583897
98 5.4530069211677562815209331883932592190
99 5.4674569198442700256244715400926645152
100 5.4817629142442046456122771040140686404
101 5.4959277532399531349214233523645658560
102 5.5099542018555859759356465942927905079
103 5.5238449445292815073316622767550991710
104 5.5376025882184624494636770791790117511
105 5.5512296653566592829490745999993171233
106 5.5647286366705229360150754725768021358
107 5.5781018938648559391974484794624923539
108 5.5913517621830190867328943815650758177
109 5.6044805028495962849017960466642559236
110 5.6174903154017605635184530967029502989
111 5.6303833399153763538649168723747061028
112 5.6431616591314945242420726002279626355
113 5.6558273004885449712574784550099187072
114 5.6683822380652046557544448496288043718
115 5.6808283944386148983029179965742966034
116 5.6931676424623387306398252759084526729
117 5.7054018069681855094546018087371050271
118 5.7175326663957843490988153188888318676
119 5.7295619543535588574623582523666628113
120 5.7414913611145419158000756623314880470
121 5.7533225350502696837774561541151953628
122 5.7650570840058075847722031634887898630
123 5.7766965766187867686625437826976551078
124 5.7882425435851665732497048221427066363
125 5.7996964788742859956419099624709782712
126 5.8110598408956243909067665205453034788
127 5.8223340536195578459543068862654994627
128 5.8335205076542722950379794033627103319
129 5.8446205612808768621229739014693899004
130 5.8556355414486505926984242649846605601
131 5.8665667447322521729654743376096975493
132 5.8774154382526249653393532522140339332
133 5.8881828605632382883811617075721777080
134 5.8988702225032199411663296506759398732
135 5.9094787080188541506458081372342020257
136 5.9200094749548430667213423059715894748
137 5.9304636558166583293325736810769520880
138 5.9408423585052417934853251490605899432
139 5.9511466670252509515153164954546045148
140 5.9613776421679846860328976477829981379
141 5.9715363221700684888432241805851538299
142 5.9816237233489249740631390516115577917
143 5.9916408407160051962393448259058194746
144 6.0015886485687087691235984518551132545
145 6.0114681010618758934555355785928425817
146 6.0212801327596919802026100351974692231
147 6.0310256591688054478543070189928603773
148 6.0407055772534213374669278719207577143
149 6.0503207659330974956065874802758593350
150 6.0598720865639361003416020095915875236
151 6.0693603834038311343473350450193215583
152 6.0787864840624019349270098703653478979
153 6.0881511999362140732596825703852771805
154 6.0974553266298614409158256799195683321
155 6.1066996443634574631379224955547545710
156 6.1158849183670587336980315864352561571
157 6.1250118992625209986749513202986630822
158 6.1340813234332652344623989411616439756
159 6.1430939133824105014745782310738122204
160 6.1520503780797102463187040452808376499
161 6.1609514132977097125428146203791118907
162 6.1697977019375240479868672761205973530
163 6.1785899143446195132214764955708065290
164 6.1873287086149638516886038363431272176
165 6.1960147308918963320673869070008748732
166 6.2046486156540531739526678091402069651
167 6.2132309859946699786184345248117767926
168 6.2217624538925693693264206129729456097
169 6.2302436204751292644751282684182055779
170 6.2386750762735150281240320698687354585
171 6.2470574014704471343067300483227835447
172 6.2553911661407649141511591219672822345
173 6.2636769304850363999733245499027812064
174 6.2719152450564542116449600487153186249
175 6.2801066509812478226175431184421973866
176 6.2882516801728333724030329423228342407
177 6.2963508555399134367901657220305510557
178 6.3044046911887308055926292248306522664
179 6.3124136926196723304371175125480556878
180 6.3203783569184112732649234507677526782
181 6.3282991729417692921374816471044979730
182 6.3361766214984722278757546657808304913
183 6.3440111755249671872129927836817087003
184 6.3518033002564620405485663952859991944
185 6.3595534533933423509152904292672157200
186 6.3672620852631149120336181775928320961
187 6.3749296389780214846597368939278687591
188 6.3825565505884609698521595691140988945
189 6.3901432492323531339294898106731976892
190 6.3976901572805720920157989586544162032
191 6.4051976904785730549786647589743415056
192 6.4126662580843313385991827967851850773
193 6.4200962630027083148152579825611251439
194 6.4274881019163548441640999929787966245
195 6.4348421654132587578780546602066099350
196 6.4421588381110391496416785022931688250
197 6.4494384987780865833767369390518065121
198 6.4566815204516448175403454899117969678
199 6.4638882705529262816090980426003795649
200 6.4710591109993503103230776920558140226
201 6.4781943983139900398391191215850095964
202 6.4852944837323108914529653050830976689
203 6.4923597133062807075385474056322858890
204 6.4993904280059288556308692028079448386
205 6.5063869638184289752116975472416660328
206 6.5133496518447775030491420343334002211
207 6.5202788183941376724250689578717257883
208 6.5271747850759163350050503654250597292
209 6.5340378688896386974148696055155671857
210 6.5408683823126838939292293538958622384
211 6.5476666333859422283789642913430305670
212 6.5544329257974529089429558139935284341
213 6.5611675589640791655747958092812693002
214 6.5678708281112757782428060494685764339
215 6.5745430243510022519040899754927502568
216 6.5811844347578331482981710677661724328
217 6.5877953424433154224761172010534982557
218 6.5943760266286210108461495803027085216
219 6.6009267627155413749061312954009434084
220 6.6074478223558692183508037511078649106
221 6.6139394735192111625995117329570401366
222 6.6204019805592737848039100233323214097
223 6.6268356042786640909783195852768455589
224 6.6332406019922442130547840442351646482
225 6.6396172275890788804959294743567101570
226 6.6459657315930130227812702031895984993
227 6.6522863612219157068767116441220036528
228 6.6585793604456255020391455730581489951
229 6.6648449700426312914073941821623863105
230 6.6710834276555215142657483672328131082
231 6.6772949678452338231813055621045928395
232 6.6834798221441361750183868415754199201
233 6.6896382191079694427894789356105446860
234 6.6957703843666807351363985966415287621
235 6.7018765406741757407260544292448776797
236 6.7079569079570175748224346901660472403
237 6.7140117033620987936398312288598506728
238 6.7200411413033124577184891833719972074
239 6.7260454335072473674644649968514724236
240 6.7320247890579318611749815903985316945
241 6.7379794144406498573844137083839760218
242 6.7439095135848521383087058631764392476
243 6.7498152879061852086693000110417525565
244 6.7556969363476594234089200572985229404
245 6.7615546554199774579722250657938822042
246 6.7673886392410435951482895953076437235
247 6.7731990795746737222240241360224792546
248 6.7789861658685253706725986865783726656
249 6.7847500852912665871216153810341937338
250 6.7904910227690018982622303089627636040
251 6.7962091610209731230486013733367424771
252 6.8019046805945522923976697658228504617
253 6.8075777598995434590568011120670168731
254 6.8132285752418097178083270642518325292
255 6.8188573008562413081943434814859669185
256 6.8244641089390802379618045970844924023
257 6.8300491696796164449564444553735899313
258 6.8356126512912701077628236228299883219
259 6.8411547200420743205435237732034381626
260 6.8466755402845719648373237631467117684
261 6.8521752744851402401149265084497209514
262 6.8576540832527559552583122232222964675
263 6.8631121253672143344382538895879342653
264 6.8685495578068137527408267576780636818
265 6.8739665357755184889788443416971576625
266 6.8793632127296112650725324374608794607
267 6.8847397404038470328628315974868551297
268 6.8900962688371191699103347112405471174
269 6.8954329463976489554247652312031219102
270 6.9007499198077089156672510093691893492
271 6.9060473341678903546845750334219891212
272 6.9113253329809251207957290042017571579
273 6.9165840581750714015911912056154680577
274 6.9218236501270730900688147438993760848
275 6.9270442476847020216707622938503349502
276 6.9322459881888921461662025618538445196
277 6.9374290074954744693157078677213956391
278 6.9425934399965213768349107973260978685
279 6.9477394186413087371343483592058598051
280 6.9528670749569039694444995358566592763
281 6.9579765390683880600420614923766488726
282 6.9630679397187193111847809153571818578
283 6.9681414042882464148536720956928696932
284 6.9731970588138782563157054188289318295
285 6.9782350280079176706857624765560321805
286 6.9832554352765661989185415055739865380
287 6.9882584027381067178396348442286528925
288 6.9932440512407706517762050946396788331
289 6.9982125003802963109229051500088470705
290 7.0031638685171847436343933454530436865
291 7.0080982727936593362333966224361507834
292 7.0130158291503352445289274773006445555
293 7.0179166523426045959236897881222571113
294 7.0228008559567432596280380087515010289
295 7.0276685524257448449694416610477002938
296 7.0325198530448874539746874434506528815
297 7.0373548679870385841943853609921582026
298 7.0421737063177034510268747037969861925
299 7.0469764760098218754761338184101329087
300 7.0517632839583187632440759286075494245
301 7.0565342359944130842133331515437648383
302 7.0612894368996901476272204270657372288
303 7.0660289904199418575270968848382813857
304 7.0707529992787795251748956072487321876
305 7.0754615651910237101841809027239268900
306 7.0801547888758754598235330336738961751
307 7.0848327700698732163608818962094630498
308 7.0894956075396395653087547518667898403
309 7.0941433990944219029329303055244595345
310 7.0987762415984310093277945048723594565
311 7.1033942309829814236702094523433126952
312 7.1079974622584374308716348729220616994
313 7.1125860295259683836894633052252689084
314 7.1171600259891170013690332622245201010
315 7.1217195439651842050055892065010306555
316 7.1262646748964339709805451755204882934
317 7.1307955093611216069806557629292984935
318 7.1353121370843487801958074933515220671
319 7.1398146469487485542565840386578253474
320 7.1443031270050036202637031776126380211
321 7.1487776644822008378266907881288379413
322 7.1532383457980251343191560547374533216
323 7.1576852565687957445247065762658999973
324 7.1621184816193477084443196573592143701
325 7.1665381049927614822177274140687059131
326 7.1709442099599434558343238638614543399
327 7.1753368790290601115308455487466766591
328 7.1797161939548284984524904110438861798
329 7.1840822357476656422513496169257314043
330 7.1884350846826994527723691953437488557
331 7.1927748203086436387950363344780389872
332 7.1971015214565390859222320583565087557
333 7.2014152662483641021009330766203549734
334 7.2057161321055158848884623468289538153
335 7.2100041957571655154095833115039888726
336 7.2142795332484887359516979365765607452
337 7.2185422199487747212864904566169434860
338 7.2227923305594150080562286930861888610
339 7.2270299391217747018921592076627407878
340 7.2312551190249480383124433703314041540
341 7.2354679430134003308501484505374992683
342 7.2396684831944982982610117193532111365
343 7.2438568110459307220299017639801813174
344 7.2480329974230213457087349876755196223
345 7.2521971125659358888524273375440206270
346 7.2563492261067850104493445364378489038
347 7.2604894070766250197454209100182442711
348 7.2646177239123580962140774629873995808
349 7.2687342444635337451053610378392922089
350 7.2728390359990531804960514270195202367
351 7.2769321652137782940371521880844464896
352 7.2810136982350468346360913924405539817
353 7.2850837006290953920985778426463583232
354 7.2891422374073917462704054050981728774
355 7.2931893730328781124441266723959918456
356 7.2972251714261267837114989829242294150
357 7.3012496959714096415325148494894235691
358 7.3052630095226829770387257932792460304
359 7.3092651744094890374759859812163192642
360 7.3132562524427756847036698712465336939
361 7.3172363049206355257882896996378789181
362 7.3212053926339658494441175098259473494
363 7.3251635758720506763671828999148783296
364 7.3291109144280662063675564937233457416
365 7.3330474676045109206142172311990563626
366 7.3369732942185615732534962284953473090
367 7.3408884526073562831329174619078707478
368 7.3447930006332059133444001245626622936
369 7.3486869956887349037817807157430535407
370 7.3525704947019526998753232345702643593
371 7.3564435541412568991085087148287822700
372 7.3603062300203692158284435075787905480
373 7.3641585779032053442195198857838564531
374 7.3680006529086797791096222875123613505
375 7.3718325097154466345086075248979936610
376 7.3756542025665774804296888874087413752
377 7.3794657852741771996056869939503446348
378 7.3832673112239388471741046876800626942
379 7.3870588333796384782581271591821885974
380 7.3908404042875708906056800559398794572
381 7.3946120760809272120565788797063312436
382 7.3983739004841152455797898429001894051
383 7.4021259288170234679503421886986273073
384 7.4058682119992295618101541309641420988
385 7.4096008005541543448708447458659378459
386 7.4133237446131619443615982404402271726
387 7.4170370939196070494936251406020668729
388 7.4207408978328300596972256118984259592
389 7.4244352053321009316805946927779463017
390 7.4281200650205125139541963989564705219
391 7.4317955251288241433538342683445142391
392 7.4354616335192562642726977720200949487
393 7.4391184376892368177710769703681667749
394 7.4427659847751001344656889337523714105
395 7.4464043215557390521023884423913249877
396 7.4500334944562109659803400625098567850
397 7.4536535495512985079165602815429708661
398 7.4572645325690255372112978272550230343
399 7.4608664888941291150913537644268023563
400 7.4644594635714881223646379498499535282
401 7.4680435013095091685096398681951035773
402 7.4716186464834704291428183884916931812
403 7.4751849431388240377500752295330059523
404 7.4787424349944576467304860536881193045
405 7.4822911654459157621764593332592329531
406 7.4858311775685814463997343883905360894
407 7.4893625141208189720024907075813393404
408 7.4928852175470780012828086078800779979
409 7.4963993299809598549493945501923952788
410 7.4999048932482464244975684166839279479
411 7.5034019488698922731628146727001570380
412 7.5068905380649804611156361465240375036
413 7.5103707017536426214880287111181021217
414 7.5138424805599438049237243306728091036
415 7.5173059148147326016176294192534032800
416 7.5207610445584570412509072373055950641
417 7.5242079095439467628332980142947337616
418 7.5276465492391619382300060849407777434
419 7.5310770028299094250733613053038254318
420 7.5344993092225266168361161992563818671
421 7.5379135070465334500703844400498639435
422 7.5413196346572530211906520152043627957
423 7.5447177301384012576978672059883590236
424 7.5481078313046460814012806491186897297
425 7.5514899757041364939924755039313461667
426 7.5548642006210020082589834835237193751
427 7.5582305430778228412901768725902342174
428 7.5615890398380712792229778313210163708
429 7.5649397274085246163966172856061393978
430 7.5682826420416500652315527108597668606
431 7.5716178197379620267151248701939315516
432 7.5749452962483521050630657985188343496
433 7.5782651070763922439290902306603336065
434 7.5815772874806113554520934374816597410
435 7.5848818724767458074595787876777333559
436 7.5881788968399641282845411663238425368
437 7.5914683951070662828988833072287719452
438 7.5947504015786578684173382430269166411
439 7.5980249503212995714796597195317806904
440 7.6012920751696322245734197464213077204
441 7.6045518097284777930130623447220933840
442 7.6078041873749166190408953886023049145
443 7.6110492412603412443604939618001827719
444 7.6142870043124871273506188226886271413
445 7.6175175092374405662363454964577267583
446 7.6207407885216241346118183593288107940
447 7.6239568744337599309140960553052087916
448 7.6271657990268109387381859265923407397
449 7.6303675941399007902578611285464739453
450 7.6335622914002122204735381167532215679
451 7.6367499222248644955457247804166450066
452 7.6399305178227700940887274561028680830
453 7.6431041091964709159928605727629660415
454 7.6462707271439542891128024598160114210
455 7.6494304022604490400034852906201221794
456 7.6525831649402018908015295058634182748
457 7.6557290453782344403382987223101554138
458 7.6588680735720809836287567536106321361
459 7.6620002793235074200070811875185879368
460 7.6651256922402114963740850474334617669
461 7.6682443417375046282816056071416017840
462 7.6713562570399755379038520460495505487
463 7.6744614671831359443340037015297471886
464 7.6775600010150485380948876642405375514
465 7.6806518871979374682641342951718939263
466 7.6837371542097815671856336738340990689
467 7.6868158303458905343692419916800212023
468 7.6898879437204642978683860891697237607
469 7.6929535222681357681693823563585050291
470 7.6960125937454971964258422221075901766
471 7.6990651857326103457254225332006482865
472 7.7021113256345006809833597651359030443
473 7.7051510406826357800166885896533796788
474 7.7081843579363881653637956060477764743
475 7.7112113042844827534750266623647161144
476 7.7142319064464291150105001870293926056
477 7.7172461909739387371401482893231343641
478 7.7202541842523274759474005075566980451
479 7.7232559125019033842909494500430233365
480 7.7262514017793400977778192375390705743
481 7.7292406779790359588446408314455971656
482 7.7322237668344590563317849832992175336
483 7.7352006939194783553659929762531545717
484 7.7381714846496810898405738072281688736
485 7.7411361642836765872973168043948711698
486 7.7440947579243866935702299051974487462
487 7.7470472905203229621473007775970485706
488 7.7499937868668507708419509630890499592
489 7.7529342716074405260399876870713883224
490 7.7558687692349061124999441349317763923
491 7.7587973040926307444340414962061910829
492 7.7617199003757803713829237275679248733
493 7.7646365821325047902191413841248801572
494 7.7675473732651266124714401285940039219
495 7.7704522975313182340536019655843580694
496 7.7733513785452669524072650920123816321
497 7.7762446397788283740271963598022286453
498 7.7791321045626682533293059165216575409
499 7.7820137960873929018456859022014663100
500 7.7848897374046683047865452251234167000
501 7.7877599514283280800955330555527914863
502 7.7906244609354704132420387017903983972
503 7.7934832885675440991410799559151630218
504 7.7963364568314238207678116152880217352
505 7.7991839881004747922389770727185171188
506 7.8020259046156068923672753400957472283
507 7.8048622284863184129561204643306070892
508 7.8076929816917295443911367487847007633
509 7.8105181860816057194004779332630028565
510 7.8133378633773709341982074146859305015
511 7.8161520351731111645930648865947646160
512 7.8189607229365679930385166916496742374
576 7.9882047841176362495375564538457671273
577 7.9906977180770658051025256902786047681
578 7.9931863480675270859676986927112184267
579 7.9956706889310585485649141225951186271
580 7.9981507554330359334764478600196543979
581 8.0006265622626994451098205590202433455
582 8.0030981240336764068707046249798944890
1000 8.7815894553958409464721114123473085607
1001 8.7830278539707691781466672791610702997
1024 8.8157210926502308954473694099596582396
1500 9.3653135697140945682449416516881820866
1510 9.3748825165181625782479215213217593337
2000 9.7796894045598410237816980894463938411
2048 9.8138572228733638591685232456436251988
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment