2017年7月7日金曜日

170707

Ruby


E_{2k}^(1/2^m)

E_2, E_4, ... , E_14 の1/2 乗および1/4 乗を出力してみた。

require 'prime'

def power0(a, n)
  return 1 if n == 0
  k = power0(a, n >> 1)
  k *= k
  return k if n & 1 == 0
  return k * a
end

# x > 0
def sigma(x, i)
  sum = 1
  pq = i.prime_division
  pq.each{|a, n| sum *= (power0(a, (n + 1) * x) - 1) / (power0(a, x) - 1)}
  sum
end

def bernoulli(n)
  ary = []
  a = []
  (0..n).each{|i|
    a << 1r / (i + 1)
    i.downto(1){|j| a[j - 1] = j * (a[j - 1] - a[j])}
    ary << a[0] # Bn = a[0]
  }
  ary
end

def E0_2k(k, n)
  a = -4 * k / bernoulli(2 * k)[-1]
  [1] + (1..n).map{|i| a * sigma(2 * k - 1, i)}
end

# ary[0] = 1
def sqrt_a(ary)
  n = ary.size - 1
  a = [1]
  (0..n - 1).each{|i| a << (ary[i + 1] - (1..i).inject(0){|s, j| s += a[j] * a[-j]}) / 2}
  a
end

def A(k, m, n)
  ary = E0_2k(k, n)
  m.times{ary = sqrt_a(ary)}
  ary
end

n = 20
(1..2).each{|m|
  (1..7).each{|k|
    p [2 * k, 1r / 2 ** m, A(k, m, n)]
  }
}

出力結果
[2, (1/2), [1, (-12/1), (-108/1), (-1344/1), (-22044/1), (-409752/1), (-8201088/1), (-172293504/1), (-3746915388/1), (-83625518604/1), (-1904468689368/1), (-44079484775616/1), (-1033852665619200/1), (-24518163456010392/1), (-586936016770722048/1), (-14164129272396668544/1), (-344209494372831399036/1), (-8416148552975554157592/1), (-206895604131528824816748/1), (-5110667122256084359086144/1), (-126786831707724936343848504/1)]]
[4, (1/2), [1, (120/1), (-6120/1), (737760/1), (-107249640/1), (17385063120/1), (-3014720249760/1), (547287510713280/1), (-102701836021530600/1), (19762301660609250840/1), (-3878226140959368843120/1), (773209219953012480001440/1), (-156173318001506652330786720/1), (31888935085481430265623676560/1), (-6571782084195189618502934249280/1), (1365127419834226042864569074813760/1), (-285534062034357884979632025794248680/1), (60085363890879747539684614555629652080/1), (-12711622785937472925878191450744191792840/1), (2702093647825127283904821241621575936002400/1), (-576835698751150275890157587333387705032310640/1)]]
[6, (1/2), [1, (-252/1), (-40068/1), (-10158624/1), (-3362961924/1), (-1254502939032/1), (-502480721822688/1), (-211053631376919744/1), (-91717692784641665028/1), (-40892713821496126310364/1), (-18600635229558474625901928/1), (-8597703758971125751979122656/1), (-4026779251040181298981708746720/1), (-1906829160682680163830076095252312/1), (-911418227119797855067380431358105408/1), (-439140214807361652244949220083845379904/1), (-213063634013721178057946454290474472415236/1), (-104006958607978929552534844705778411158855032/1), (-51045105077275857796643678469898154574883627428/1), (-25172542591397172724757616806583589908747757117344/1), (-12467066632341213302483024369213270034025698921210984/1)]]
[8, (1/2), [1, (240/1), (2160/1), (6720/1), (17520/1), (30240/1), (60480/1), (82560/1), (140400/1), (181680/1), (272160/1), (319680/1), (490560/1), (527520/1), (743040/1), (846720/1), (1123440/1), (1179360/1), (1635120/1), (1646400/1), (2207520/1)]]
[10, (1/2), [1, (-132/1), (-76428/1), (-12686784/1), (-4629945804/1), (-1581036186312/1), (-643032851554368/1), (-264454897726360704/1), (-114830224962140965068/1), (-50847479367845783084484/1), (-23070238839261012248537688/1), (-10629338992044523324726971456/1), (-4967892053918960602454346039360/1), (-2347853010266523816201171448876872/1), (-1120468242949142429982811561469659008/1), (-539122252309080980108333812009708040064/1), (-261267205439828646955537710178782089567436/1), (-127406173804440558114690381384936674502183432/1), (-62472612638070920430220006411182194584648704588/1), (-30783195051390210413464424111830566268580850427584/1), (-15234894318432517657267482026195630834307458704923864/1)]]
[12, (1/2), [1, (32760/691), (45846932040/477481), (1269052691568480/329939371), (-1047187156725247257720/227988105361), (-23511629333007249712190640/157539780804451), (47977185339109004049308393039520/108859988535875641), (835146211936838220757179389047631040/75222252078290067931), (-2745429098554252777038039874974890337579000/51978576186098436940321), (-33855286759743680905173875788147434848296610280/35917196144594019925761811), (175883449894305961873827131531201742285863480207937840/24818782535914467768701411401), (1276889585024268242390619968919225388757420238799574591520/17149778732316897228172675278091), (-12068830934347580312224002700911953253614082909300889126098660960/11850497104030975984667318617160881), (-26442231511345777455626198534295519357065796367447949886556038977520/8188693498885404405405117164458168771), (867320801944536206077078852157264095630802182024680141691041691169229898560/5658387207729814444134935960640594620761), (-2495586966198881997216511499944039981305543711901925292260773006593876356253120/3909945560541301780897240748802650882945851), (-64435798072824891797948874500026179282728169893552716701257068769941719493474211733240/2701772382334039530599993357422631760115583041), (512110853488979917948249243736791690453220661480437514320628734503250657384523565428509040/1866924716192821315644595409979038546239867881331), (4908464039731808157125101429004403188697364209120190467279552218647471431275792054748219508797480/1290044978889239529110415428295515635451748705999721), (-63920735137998846541146983625576224317971955895678193117230861999777975523240480569539461695599284000/891421080412464514615297060952201304097158355845807211), (-381276796992035323294014316708105961482113979445246879338900423536853478370364877244822485726019376795997520/615971966565012979599170269117971101131136423889452782801)]]
[14, (1/2), [1, (-12/1), (-98388/1), (-20312544/1), (-5889254484/1), (-2083830070392/1), (-810894400450848/1), (-334381509272710464/1), (-143464412162723380308/1), (-63364234685240118242604/1), (-28614423885137875351570248/1), (-13150804531745894256074689056/1), (-6130681937632711718212416909600/1), (-2891952936547139307759187121205432/1), (-1377813172560437641208522365520803008/1), (-662026551456488576417497526611502879424/1), (-320438833640321920906426195678762435402836/1), (-156096931895680388758733708234370090499963032/1), (-76469959640858049116571815436296143313922538548/1), (-37649462349570694592222143099679267479968387606624/1), (-18619436954215044812960476189445579428272591543267144/1)]]
[2, (1/4), [1, (-6/1), (-72/1), (-1104/1), (-20238/1), (-405792/1), (-8601840/1), (-189317568/1), (-4281478272/1), (-98841343686/1), (-2318973049008/1), (-55118876238000/1), (-1324194430710912/1), (-32099173821105312/1), (-784045854628721568/1), (-19276683937074656064/1), (-476644852188898489662/1), (-11844755000460934254144/1), (-295648246997496992993400/1), (-7408548294571066446309360/1), (-186304177563041461260852864/1)]]
[4, (1/4), [1, (60/1), (-4860/1), (660480/1), (-105063420/1), (18206269560/1), (-3328461434880/1), (631226199152640/1), (-122944850563477500/1), (24436796345920143420/1), (-4935178772322020730360/1), (1009598430837232126725120/1), (-208736157503462405753487360/1), (43541664791244563211024015480/1), (-9151518339192632609214768291840/1), (1935999362444068965989927720724480/1), (-411882742852621041519957574448594940/1), (88063943071981650860752742653925867640/1), (-18911696622623623022546776465142542177020/1), (4077208792695042557322653333144881971840000/1), (-882104328635064717630231824646850115189884920/1)]]
[6, (1/4), [1, (-126/1), (-27972/1), (-8603784/1), (-3156774138/1), (-1265670056952/1), (-536028623834760/1), (-235629947944839168/1), (-106414175763732002292/1), (-49052892961209924090486/1), (-22977990271885179647877768/1), (-10904016663130642099838196120/1), (-5229895194960664651211116759032/1), (-2530924730585416328796558774471672/1), (-1234134945745842897078256903483903248/1), (-605735219195135308711061028699689539584/1), (-298998871837655883369571945334634385993722/1), (-148327163562049158377994605926990241325521904/1), (-73907150957380004062822227614360676547262298060/1), (-36970725242422699591281439434742757281689118022040/1), (-18559179121509411064302823188449407732664477315847144/1)]]
[8, (1/4), [1, (120/1), (-6120/1), (737760/1), (-107249640/1), (17385063120/1), (-3014720249760/1), (547287510713280/1), (-102701836021530600/1), (19762301660609250840/1), (-3878226140959368843120/1), (773209219953012480001440/1), (-156173318001506652330786720/1), (31888935085481430265623676560/1), (-6571782084195189618502934249280/1), (1365127419834226042864569074813760/1), (-285534062034357884979632025794248680/1), (60085363890879747539684614555629652080/1), (-12711622785937472925878191450744191792840/1), (2702093647825127283904821241621575936002400/1), (-576835698751150275890157587333387705032310640/1)]]
[10, (1/4), [1, (-66/1), (-40392/1), (-9009264/1), (-3725341158/1), (-1400292801072/1), (-604993149612720/1), (-262280205541007808/1), (-118717180239835505592/1), (-54520207050101542651506/1), (-25525844887805197307977968/1), (-12095360676632550886664063760/1), (-5797006133905562955666277287792/1), (-2803076705590018145443840156918512/1), (-1366015421209459578528437438006252448/1), (-670091296919050986225989658489012757824/1), (-330611670137136442162609620453130082815782/1), (-163941520773935794740302240363598894478691424/1), (-81657649771473397928434008796580782410933017400/1), (-40834520010932330651037547656178672233457870827600/1), (-20492850667625284419689234433465422535429659043139344/1)]]
[12, (1/4), [1, (16380/691), (22789313820/477481), (261237385412640/329939371), (-787549058928904168260/227988105361), (-4809181838933117734681320/157539780804451), (41980947234884080545199964009760/108859988535875641), (45260401444681454603139799306595520/75222252078290067931), (-2639033317669749279068083384309427482119300/51978576186098436940321), (10513809347159755999846619089710384094533472860/35917196144594019925761811), (180949934871719013702197255039137858643124345765621720/24818782535914467768701411401), (-1638164681830088724110432939859211290149283136689069572640/17149778732316897228172675278091), (-13093404286931403267642267493587300250452605573089175827219968480/11850497104030975984667318617160881), (184999082639412441206554378645194079143007004486556598218733173230040/8188693498885404405405117164458168771), (982793373074668753061035461179929885273684266979467052324258607890791372480/5658387207729814444134935960640594620761), (-18883314263737362292271581810519934169862545794159028787667870943318316108628160/3909945560541301780897240748802650882945851), (-75752856033948008512130201441199560973448503136818591154834118926514745856486041334020/2701772382334039530599993357422631760115583041), (1841538034983574797196241711741210588827368267821575041942807853628544593017596258010732920/1866924716192821315644595409979038546239867881331), (5957469249081894236607025663301065945221332732132192290213672136437703129539056005533588683449340/1290044978889239529110415428295515635451748705999721), (-175266196632754364971353842533279391145069486985308508688919671392127462960128375953850227387129352800/891421080412464514615297060952201304097158355845807211), (-475940272979041900483992425321050569816432134634851300882719883981889776380787033572861547177114063021117160/615971966565012979599170269117971101131136423889452782801)]]
[14, (1/4), [1, (-6/1), (-49212/1), (-10451544/1), (-4218246978/1), (-1581565900392/1), (-677142351901080/1), (-293172823731286848/1), (-132241381826055031692/1), (-60651805300034501958126/1), (-28350123351848675673466968/1), (-13420046900399367136336144200/1), (-6425692364941074466359795250152/1), (-3104773022051749920355884067334952/1), (-1512050649547841067602883114609259248/1), (-741322222128790045704590782231298729664/1), (-365580326288772369326690154343819802568642/1), (-181205962723470844962060829815426371793633744/1), (-90223604375071547255060847021997348262119448340/1), (-45103330863911195409976397618541206060852989284360/1), (-22628528490799136130775605432077457411997743506682744/1)]]

0 件のコメント:

コメントを投稿