2017年5月7日日曜日

170507

Ruby


Number of representations of 10^n as sum of k triangular numbers

k が6, 8 のときに規則性がある。

def s(k, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == 0}
  s
end

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

m = 3
n = 10 ** m
(1..100).each{|i|
  a = A(i, n)
  p [i, (0..m).map{|j| a[10 ** j]}]
}

出力結果
[1, [1, 1, 0, 0]]
[2, [2, 2, 2, 2]]
[3, [3, 9, 30, 78]]
[4, [4, 32, 272, 2880]]
[5, [5, 90, 2600, 83880]]
[6, [6, 231, 20400, 2003001]]
[7, [7, 567, 147511, 46076450]]
[8, [8, 1332, 1030302, 1007141184]]
[9, [9, 2979, 6750900, 20612437776]]
[10, [10, 6341, 41591741, 397737367822]]
[11, [11, 12892, 242585717, 7258733595410]]
[12, [12, 25158, 1346684988, 125940317363157]]
[13, [13, 47346, 7145580338, 2086440134887550]]
[14, [14, 86282, 36383662861, 33132657211536701]]
[15, [15, 152778, 178404108813, 506119212593601678]]
[16, [16, 263584, 845008027992, 7459911528848051232]]
[17, [17, 444125, 3875970033454, 106366350249753658347]]
[18, [18, 732276, 17253879294006, 1470241717851559433265]]
[19, [19, 1183491, 74674844682795, 19737083066556180555180]]
[20, [20, 1877676, 314733772865202, 257743659543879717605382]]
[21, [21, 2928282, 1293659282055567, 3278919983646414241580145]]
[22, [22, 4494193, 5192410364798734, 40689036635374198080187200]]
[23, [23, 6795097, 20375281865527130, 493107574525089987331703278]]
[24, [24, 10131156, 78251281586187426, 5842412953614743357001098430]]
[25, [25, 14907935, 294415231452853070, 67741972518495737868468490110]]
[26, [26, 21667711, 1086181579309557575, 769363768363979087935689960491]]
[27, [27, 31128462, 3932591936984003709, 8565955270277141782841472118026]]
[28, [28, 44232034, 13983719082095273847, 93567288088577633432099207461496]]
[29, [29, 62203202, 48869975111328487816, 1003426663894029699966686656123132]]
[30, [30, 86621580, 167966746125385693221, 10571768629387274811665279839656675]]
[31, [31, 119508596, 568110213674533249213, 109490724124333944968633230250789316]]
[32, [32, 163432032, 1891988536729339032080, 1115383211760636782200793944815208692]]
[33, [33, 221630937, 6207453228350773887246, 11182047224644846290030035287748405496]]
[34, [34, 298164054, 20074065058884924294308, 110379330479443501083252040822091785132]]
[35, [35, 398085261, 64016029204520969002903, 1073319265602861048417006103117247591817]]
[36, [36, 527649912, 201403126399797207319455, 10285804575120179718911699867862910259766]]
[37, [37, 694556378, 625387571704231391408568, 97184762379609449976524774000135058811643]]
[38, [38, 908227531, 1917384504114038712429564, 905692791658237702524015191542400232300361]]
[39, [39, 1180137387, 5806416282772424936449833, 8328166969507939881527435674941240159366309]]
[40, [40, 1524188628, 17373991390513793373870792, 75588911774854943077103327159615202817028772]]
[41, [41, 1957147259, 51384139718062181645309168, 677412775876584392000497062810168481449715214]]
[42, [42, 2499141225, 150257061374739621991442040, 5996176890580778188141465137865434497002107219]]
[43, [43, 3174230416, 434558731461306656908319553, 52438904357215231031836671672679724885535645326]]
[44, [44, 4011056126, 1243354685616868083201616586, 453228234079329840298439460451077062095062425595]]
[45, [45, 5043578706, 3520415084517199345693237686, 3872439774194071291996868210809075098235371690996]]
[46, [46, 6311912862, 9866403039568399741129898298, 32716850282609223308302899364491285989634727446074]]
[47, [47, 7863270798, 27377811890098209253302990248, 273392774614676131191373096265691357737735250293030]]
[48, [48, 9753024192, 75234583553344059445295491860, 2260144347128520486967951684848179161216273821383334]]
[49, [49, 12045896821, 204792831768752932701195373062, 18489251254356858357656266307573641347825603283845857]]
[50, [50, 14817300520, 552313660584536111039091447827, 149703755958721844885004574115749734947557715569923275]]
[51, [51, 18154828071, 1476121338171422203406396385042, 1199965027569773574285474618847562111902378409413216239]]
[52, [52, 22159917572, 3910311168087104865707576620953, 9523917058122963247757191413928647798073666990866027565]]
[53, [53, 26949703834, 10269229046962650709324610472632, 74861559955105313394526460151288121412061943720080400585]]
[54, [54, 32659073397, 26741306953324513170973186679934, 582881468798447636141086229312530682942482686654280356123]]
[55, [55, 39442940845, 69059527431549373545582774323085, 4496333312116471695938682709590611284833198031249873762960]]
[56, [56, 47478765236, 176903230326576585020279081565070, 34369203758649563079215339334151725489171819762552655826555]]
[57, [57, 56969326647, 449563828456858107756391227471585, 260367191376079129172930958732104331105852756789322707399849]]
[58, [58, 68145784067, 1133600517649856146314420556168814, 1955146663996772955891509922824076231481504121394631479180968]]
[59, [59, 81271037154, 2836670924990303463682556984227197, 14555151412787470360435265417879386739593496900453072700239598]]
[60, [60, 96643415706, 7045356181837789546441335728620089, 107439525165909360329875870430990868820225948844037761574343956]]
[61, [61, 114600722082, 17370192446168069511184604391161256, 786474844458523986016638719951294543607178075749351774966162642]]
[62, [62, 135524653248, 42518161576201876245939760542993800, 5710055345975768956250358236796905237385631408326373491126507667]]
[63, [63, 159845630616, 103340600818653272598830031775774074, 41123477900736691449399374958920369390688767967849562762473876441]]
[64, [64, 188048067392, 249431165661412219474572136066897888, 293826384763519601255581141064012323205810133214142300147506796096]]
[65, [65, 220676104753, 597954907105160383047774668717763157, 2083045510111285315679441348576237084499343480755650816347393352446]]
[66, [66, 258339849834, 1423892346685780912063844602192014990, 14654384309170877898248097288688784990844510840153975462389983548120]]
[67, [67, 301722150225, 3368435580800175876977628166747381080, 102317384245768352281829452133694546489778068414176597888715675233672]]
[68, [68, 351585941456, 7917197742543990620104710017908320632, 709079477775636804785498424780123199317159265905437976314981750709861]]
[69, [69, 408782205786, 18490777477145605916232765302112842505, 4878127297815823739800542338919390105543601803053894787691417482165243]]
[70, [70, 474258582511, 42916680537800752287796082155968232669, 33317446949710952723514353547487955408398447989475830679889715107980059]]
[71, [71, 549068671967, 98998771169535594723882699195022964884, 225941984169921604525554918076851548688038011721442023869111577960928101]]
[72, [72, 634382077428, 226991896128039177052165518506440283304, 1521506258221441317745293648234617374041052446419454692692053290995595085]]
[73, [73, 731495231187, 517381201077910681736323071372205585572, 10175266820023070939897341529646024803077255692152224202870159036843871282]]
[74, [74, 841843053261, 1172390644366726875615775142774533107096, 67585820720007784847105363244947977089514618680757806240396624569096431479]]
[75, [75, 967011493380, 2641410829260121376663522826559131557541, 445907113171214114050457879006541480708635207512557190029378693170139367812]]
[76, [76, 1108751009206, 5917535383978282180602521992759372500931, 2922485838041651605245603596097947797733585343026418021409855549086747757504]]
[77, [77, 1268991036082, 13183338164091513672724841559059504721011, 19029121938192456659537332657312480784110581423180538480794083153946453159127]]
[78, [78, 1449855506034, 29209682281875384750830175982779105251022, 123106641779305872473880489941540146739475162629762820230499882304217613749145]]
[79, [79, 1653679476242, 64369701011602311980184573991995931271583, 791366596158525779598259320528108715110756151647674476538703507720960429133632]]
[80, [80, 1883026929760, 141099256576030704070452579260251052953372, 5055260988823061458474374300611370693663630638444610465164781012551495291996692]]
[81, [81, 2140709813901, 307674127883196148990297083958963475723277, 32093295374737135379856775155629297736381359124937683801005299910055345018708492]]
[82, [82, 2429808384412, 667442436044890490755738899308422593832971, 202499639625533040043862312173653863502153494843277443626218398801576505772271776]]
[83, [83, 2753692926347, 1440542108546769293032907917209159797387780, 1270009308541837399820586566473246614653147556197517100387053596983260830182227339]]
[84, [84, 3116046925404, 3093565453666685348533118531541298666108788, 7917625250597296899031215590507160284432996842056474526453884838170737562119747880]]
[85, [85, 3520891766426, 6610662572605959975203415436335628488892744, 49070475025400814354904156581496972387248239045050335343795888482124480410515471627]]
[86, [86, 3972613038777, 14057670597620701902012153644347705743370378, 302352801691344072512388152290387488916594816234072869711633464348193720474773774336]]
[87, [87, 4475988531393, 29750485606338854236282345993688415858263124, 1852279619772792075507504263009675700112006825174951062985331023892196550980510263097]]
[88, [88, 5036218003476, 62663695949551090834211467484425603953035016, 11283078479422067402282657089499559840483019079593902614140874845188756969957600529212]]
[89, [89, 5658954820047, 131373403511292714930456445495802120121437802, 68344912179794902439888559139444973662652493791348138073450195733710488707812312430450]]
[90, [90, 6350339544903, 274154881862118437062782426011794489047911556, 411690307375257924204783670075589754185356145383095915851179270197774795538585222655541]]
[91, [91, 7117035586934, 569519446547134931322063413270657432919655503, 2466315773095977065933386196484387620145600233152830434294712624674945427596363105142788]]
[92, [92, 7966266999250, 1177799903932894142499310753444085592327078661, 14694925954812773672812620381862645244980264410155969448081421406973530550211327324073958]]
[93, [93, 8905858534146, 2424993623998760682929042158388991640300487364, 87086995867135984830404267310685378355125983823696931051380172817468674483310994141551174]]
[94, [94, 9944278060596, 4971082727338014844510371575618155267946087589, 513372177987547476500845005972405820503712422853250255014942546681847202940966607922719730]]
[95, [95, 11090681454716, 10146524327162079495407983845731760637584712353, 3010438971112358945295073809723436351792056486474582248791503467116232443482852751748835848]]
[96, [96, 12354960077472, 20622134365328614945750886527321115137296110016, 17561865001317034355991431401049730760715063400251028202349540844598805800490204733118543152]]
[97, [97, 13747790957833, 41737216659047810127266395921039168566582703253, 101924609165750298948632610396123288952244250541341277739523961126769083841603631974407612562]]
[98, [98, 15280689803582, 84122073857452440484902427497347733040436549884, 588543933502356215777828991621313302904006531193599219974069043224412135179947953835613566588]]
[99, [99, 16966066966101, 168855666620026104198829795805684560415730663729, 3381375802514361493989633146565427878933287283293392633511053125712310039435758471772631927276]]
[100, [100, 18817286489640, 337569020292608703618931591810026288085927961928, 19330609417148743978329847749614366418319592600892466793661057390223423277408685814610773864036]]

2017年4月30日日曜日

170430

Ruby


Glaisher's chi_4(n)(5)

一般に
1/4 * Sum_{a^2 + b^2 = n} (a + bi)^(4 * k)
の場合を計算してみた。

def G(a, n)
  ary = []
  (1..n).each{|j|
    s = 0
    (1..Math.sqrt(j).to_i).each{|k|
      m = Math.sqrt(j - k * k).to_i
      if m * m == j - k * k
        x = (k + m * 1i) ** a
        s += x
      end
    }
    ary << s.real
  }
  ary
end

n = 50
0.step(48, 4){|i| p [i, G(i, n)]}

出力結果
[0, [1, 1, 0, 1, 2, 0, 0, 1, 1, 2, 0, 0, 2, 0, 0, 1, 2, 1, 0, 2, 0, 0, 0, 0, 3, 2, 0, 0, 2, 0, 0, 1, 0, 2, 0, 1, 2, 0, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 1, 3]]
[4, [1, -4, 0, 16, -14, 0, 0, -64, 81, 56, 0, 0, -238, 0, 0, 256, 322, -324, 0, -224, 0, 0, 0, 0, -429, 952, 0, 0, 82, 0, 0, -1024, 0, -1288, 0, 1296, 2162, 0, 0, 896, -3038, 0, 0, 0, -1134, 0, 0, 0, 2401, 1716]]
[8, [1, 16, 0, 256, -1054, 0, 0, 4096, 6561, -16864, 0, 0, -478, 0, 0, 65536, -63358, 104976, 0, -269824, 0, 0, 0, 0, 720291, -7648, 0, 0, -1407838, 0, 0, 1048576, 0, -1013728, 0, 1679616, 925922, 0, 0, -4317184, 3577922, 0, 0, 0, -6915294, 0, 0, 0, 5764801, 11524656]]
[12, [1, -64, 0, 4096, 23506, 0, 0, -262144, 531441, -1504384, 0, 0, 6911282, 0, 0, 16777216, -47295038, -34012224, 0, 96280576, 0, 0, 0, 0, 308391411, -442322048, 0, 0, -173439758, 0, 0, -1073741824, 0, 3026882432, 0, 2176782336, -2050092718, 0, 0, -6161956864, -2285065118, 0, 0, 0, 12492052146, 0, 0, 0, 13841287201, -19737050304]]
[16, [1, 256, 0, 65536, 329666, 0, 0, 16777216, 43046721, 84394496, 0, 0, -1631232958, 0, 0, 4294967296, -9937278718, 11019960576, 0, 21604990976, 0, 0, 0, 0, -43908219069, -417595637248, 0, 0, 981515008322, 0, 0, 1099511627776, 0, -2543943351808, 0, 2821109907456, -6167627357758, 0, 0, 5530877689856, -3168324620158, 0, 0, 0, 14191040325186, 0, 0, 0, 33232930569601, -11240504081664]]
[20, [1, -1024, 0, 1048576, -19306574, 0, 0, -1073741824, 3486784401, 19769931776, 0, 0, 190840318802, 0, 0, 1099511627776, 750325121602, -3570467226624, 0, -20244410138624, 0, 0, 0, 0, 277376367976851, -195420486453248, 0, 0, 203154876160402, 0, 0, -1125899906842624, 0, -768332924520448, 0, 3656158440062976, -9492206529013198, 0, 0, 20730275981950976, 16082418088944802, 0, 0, 0, -67317861059952174, 0, 0, 0, 79792266297612001, -284033400808295424]]
[24, [1, 4096, 0, 16777216, 64250786, 0, 0, 68719476736, 282429536481, 263171219456, 0, 0, 1169648638562, 0, 0, 281474976710656, 1071576144961922, 1156831381426176, 0, 1077949314891776, 0, 0, 0, 0, -55476481273772829, 4790880823549952, 0, 0, -677548216755839518, 0, 0, 1152921504606846976, 0, 4389175889764032512, 0, 4738381338321616896, -8963023859283443038, 0, 0, 4415280393796714496, -39905458007232018238, 0, 0, 0, 18146319708519924066, 0, 0, 0, 191581231380566414401, -227231667297373507584]]
[28, [1, -16384, 0, 268435456, 11167097746, 0, 0, -4398046511104, 22876792454961, -182961729470464, 0, 0, -5728966721281678, 0, 0, 72057594037927936, 282379614196418242, -374813367582081024, 0, 2997644975644082176, 0, 0, 0, 0, 87451169084099139891, 93863390761479012352, 0, 0, -199246537739584127438, 0, 0, -1180591620717411303424, 0, -4626507598994116476928, 0, 6140942214464815497216, -1588134303148899671278, 0, 0, -49113415280952642371584, 75787711604536118762722, 0, 0, 0, 255467377459504789617906, 0, 0, 0, 459986536544739960976801, -1432799954273880307974144]]
[32, [1, 65536, 0, 4294967296, -196496109694, 0, 0, 281474976710656, 1853020188851841, -12877569044905984, 0, 0, 1330087744899070082, 0, 0, 18446744073709551616, 1427124567881986562, 121439531096594251776, 0, -843944364926958567424, 0, 0, 0, 0, 15327656759489517883011, 87168630449705456893952, 0, 0, 462878764200641031680642, 0, 0, 1208925819614629174706176, 0, 93528035680713871327232, 0, 7958661109946400884391936, 13364603395730595798238082, 0, 0, -55308737899853156674699264, -117479780930606773712920318, 0, 0, 0, -364111258293827945049846654, 0, 0, 0, 1104427674243920646305299201, 1004513313389905043981008896]]
[36, [1, -262144, 0, 68719476736, -4228490555534, 0, 0, -18014398509481984, 150094635296999121, 1108473428189904896, 0, 0, -152935864759452674158, 0, 0, 4722366482869645213696, -23125093646441048317118, -39346408075296537575424, 0, -290579658359414429057024, 0, 0, 0, 0, 3328217149873384131384531, 40091219331501961814474752, 0, 0, 178879349123443365836288722, 0, 0, -1237940039285380274899124224, 0, 6062104548852642170042580992, 0, 10314424798490535546171949056, 31870691915293393072612781042, 0, 0, 76173713960970336090724499456, 142745614735837791048783844642, 0, 0, 0, -634673747789680938240399685614, 0, 0, 0, 2651730845859653471779023381601, -872472156536408409737666494464]]
[40, [1, 1048576, 0, 1099511627776, 182008936336226, 0, 0, 1152921504606846976, 12157665459056928801, 190850202427694514176, 0, 0, -1589900269312604162398, 0, 0, 1208925819614629174706176, -7565475025188088957756798, 12748236216396078174437376, 0, 200120941860822202896613376, 0, 0, 0, 0, 24032305888515086764969532451, -1667131264794733222190645248, 0, 0, -312717248594471233529540479198, 0, 0, 1267650600228229401496703205376, 0, -7932975540011625566968792219648, 0, 13367494538843734067838845976576, 43857017456118466671167150613602, 0, 0, 209842016732653502224519267352576, -101691394325222881712409889310398, 0, 0, 0, 2212803758534626401134640679045026, 0, 0, 0, 6366805760909027985741435139224001, 25199699179355595619664692459339776]]
[44, [1, -4194304, 0, 17592186044416, 94681488501586, 0, 0, -73786976294838206464, 984770902183611232881, -397122945948156166144, 0, 0, 4746397497491127617277362, 0, 0, 309485009821345068724781056, -504652011666161847903676478, -4130428534112329328517709824, 0, 1665654360682135200282443776, 0, 0, 0, 0, -5675377301815925525037469625229, -19907834009317026529656908546048, 0, 0, -152160779312124788381478442879118, 0, 0, -1298074214633706907132624082305024, 0, 2116663951139429303309781866381312, 0, 17324272922341479351919144385642496, 35088063909469944088702337296151762, 0, 0, -6986260747626522399085455059451904, -94426535081528617629501241894433438, 0, 0, 0, 93239574851794058485356430783849266, 0, 0, 0, 15286700631942576193765185769276826401, 23804257718515743693366758998976495616]]
[48, [1, 16777216, 0, 281474976710656, -115081126049163454, 0, 0, 4722366482869645213696, 79766443076872509863361, -1930740909250041887064064, 0, 0, -1084233462811051085429762878, 0, 0, 79228162514264337593543950336, 469378091822230262815821699842, 1338258845052394702439737982976, 0, -32392457274524350748321407565824, 0, 0, 0, 0, 9690951893942946361799831871319491, -18190419000008971247289584632987648, 0, 0, 208701784399551975874725687351552962, 0, 0, 1329227995784915872903807060280344576, 0, 7874857632169390720997808875736399872, 0, 22452257707354557240087211123792674816, -6334717520302422495126844926858828478, 0, 0, -543455252465466329764349892155863465984, 574223389697520075808965854102928347522, 0, 0, 0, -9179612090222986848475130127017894808894, 0, 0, 0, 36703368217294125441230211032033660188801, 162587193170289902788329928068811305517056]]

2017年4月25日火曜日

170425

Ruby


Glaisher's chi_4(n)(4)

丸善から出版されているG.H.Hardy の
"Ramanujan: Twelve Lectures on Subjects Suggested by His Life and Work"
の翻訳を読んでいて、以前とは別の方法で計算したくなったので書いてみた。

n = 50

ary = []
(1..n).each{|j|
  p j
  s = 0
  (1..Math.sqrt(j).to_i).each{|k|
    m = Math.sqrt(j - k * k).to_i
    if m * m == j - k * k
      x = (k + m * 1i) ** 4
      s += x
      p [k, m, x]
    end
  }
  ary << s.real
}
p ary

出力結果
1
[1, 0, (1+0i)]
2
[1, 1, (-4+0i)]
3
4
[2, 0, (16+0i)]
5
[1, 2, (-7-24i)]
[2, 1, (-7+24i)]
6
7
8
[2, 2, (-64+0i)]
9
[3, 0, (81+0i)]
10
[1, 3, (28-96i)]
[3, 1, (28+96i)]
11
12
13
[2, 3, (-119-120i)]
[3, 2, (-119+120i)]
14
15
16
[4, 0, (256+0i)]
17
[1, 4, (161-240i)]
[4, 1, (161+240i)]
18
[3, 3, (-324+0i)]
19
20
[2, 4, (-112-384i)]
[4, 2, (-112+384i)]
21
22
23
24
25
[3, 4, (-527-336i)]
[4, 3, (-527+336i)]
[5, 0, (625+0i)]
26
[1, 5, (476-480i)]
[5, 1, (476+480i)]
27
28
29
[2, 5, (41-840i)]
[5, 2, (41+840i)]
30
31
32
[4, 4, (-1024+0i)]
33
34
[3, 5, (-644-960i)]
[5, 3, (-644+960i)]
35
36
[6, 0, (1296+0i)]
37
[1, 6, (1081-840i)]
[6, 1, (1081+840i)]
38
39
40
[2, 6, (448-1536i)]
[6, 2, (448+1536i)]
41
[4, 5, (-1519-720i)]
[5, 4, (-1519+720i)]
42
43
44
45
[3, 6, (-567-1944i)]
[6, 3, (-567+1944i)]
46
47
48
49
[7, 0, (2401+0i)]
50
[1, 7, (2108-1344i)]
[5, 5, (-2500+0i)]
[7, 1, (2108+1344i)]
[1, -4, 0, 16, -14, 0, 0, -64, 81, 56, 0, 0, -238, 0, 0, 256, 322, -324, 0, -224, 0, 0, 0, 0, -429, 952, 0, 0, 82, 0, 0, -1024, 0, -1288, 0, 1296, 2162, 0, 0, 896, -3038, 0, 0, 0, -1134, 0, 0, 0, 2401, 1716]

2017年4月23日日曜日

170423(3)

Ruby


A093573 の素数の位置

奇数だけの行と偶数だけの行が交互に並ぶので、
2を除けば、素数が現れる行と素数が現れない行が交互に並ぶはずと考えて、
実験してみた。
予想以上に、素数が連続して並んでいた。

require 'prime'

n = 2 ** 12
@ary = [1]
s = 1
s_ary = [['□'], ['□']]
(1..n).each{|i|
  j = @ary[i / 2]
  j *= (-1) ** (i / 2) if i % 2 > 0
  @ary << j
  s += j
  str = '□'
  str = '■' if i.prime?
  if s_ary[s] == nil
    s_ary[s] = [str]
  else
    s_ary[s] << str
  end
}
(1..s_ary[1..-1].size - 1).each{|i| p s_ary[i].join}

出力結果
"□"
"□■"
"■□□"
"■■■□"
"□□□□□"
"□■■■□□"
"□□□□□□□"
"□■■■■□■□"
"□□□□□□□□□"
"□□□□□■□■□■"
"□□□□□□□□□□□"
"■□□■□■□■■■■□"
"□□□□□□□□□□□□□"
"■■■□□■■□■□■□□□"
"□□□□□□□□□□□□□□□"
"□□□□□□□■□□□■□□□□"
"□□□□□□□□□□□□□□□□□"
"□■□□□■□□□■■□□■■□□□"
"□□□□□□□□□□□□□□□□□□□"
"□□□□■■□□■□□■□■■■■□□■"
"□□□□□□□□□□□□□□□□□□□□□"
"■■□□□□■□■□□□□□■■□■■□□■"
"□□□□□□□□□□□□□□□□□□□□□□□"
"■■■□■□□■■□□□□■■□□□□□□■□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■□■□□□□□■■□□□□□□□■□■□■□□■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■■□■□□□□□□□□■□■■□■□□□■■□■□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□□□■■□□■■□□□□■□□■□□■□□□□□■□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□■□■□□■□□□■□■■□■□□■□■□□□■□■■□■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□■■□□□□■■□□■■□□□□□■■□□□□□■□□■□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□□□□□□□■□□□□■□□□□■□■□□■□□□□■□■□□■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■■□□□□□□□□□■□□□□□■□□□□□□□□■□□□■■■■□□■■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□■□□□□□□□■□■■■□□■□□□□□□□□□□□□□■□□■□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■□■■■■□■■□□□■□□■□□■■□□□□□□□□■■□□□□□□□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□■□□□□□■□□□■□□□□□■□■■■□■□□■□□□□■□□□■□■□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□■■□■□□□□□□□■□■□□□■□□□□□□■□□□□□■□□□■■□□□■□□■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■□■□■□□□■■□■□□□■□■□□□□■■□□□□□■■■□□□□□□■□□□■□■■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■■□□□□□□□■□□■□■□□□□□□□■□□□□□□■□■□■■□□■□■□□□□■□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■■□■□□■□■□■□□□□□■■■□□□□□□□□□■■□□□□■□■■□■□□□□□□□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□■□□□□□□□■□■□□■□□■■■■□□■□□□■□□□■□□□□■□□□■□□■□□□□□□□■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■□□□□□■□□□■□□□■□■■□□□□□□■□□■□□□■□■□■□□■□□□□■□■□□□□■■■□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■□□■□□□■■□□□□□□□□□□□□□□□□■■□□□□□□□■□□□□□□□□□□□□□□■□□□□□■□■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■□□□□□□□□■□■□□□□■□□□□□□■□□□■□■□□□■■□□■□□■□□■□□■□□□■□□□■■□□■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■■□■□□□■□□□□□□□□□■□■■■□□■□□□■□■□□□□□■■□□□■□□■■□□□■□□■□■■□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■■□□■□□■□□□□□□□■■□□□□□□□□□□□■□□■□□□□□□□■□□□□□■■□□□□□□□■□□□□□□■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□□□■□□□□□□□□□□■□■□■□□■□■□□□■□□□□■□□□□■■■□□□□□□□□□□■■■□□□□□□■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■□□■□□□□□□■□□□□■□□□□■■■□□■■□■■□□□□□□■□□□□■■■□■□□□□□□□□□□□□□■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□□□□□□□■■■■□□□□□□□■□□■□□□□□□□□■□□□□□□□■□□□□■□■□□□□□□□□■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■□□□□□□■■□■□■□□□□□□■□□■■□□□□□■■□□■■□■□□□□■□□□□□□■□□□■□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■■□■□□■□■□■□■□□□□□□■□□□■□□□■□□□□■□□□□■□□□■□■□□□□■■□■□■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■□□□□□□□□□□□□□□□■□□■□□□□□□■□□□□□■□■□□□□□□□□□■■□□■■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■□□□■■■□□□■□□□□■□□□□□□□■■□□■■■□■□□□■□□■□□□■□□□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□■■□□□□□□■□■□□□□□□■□■□□□□□□□■□□□■■□■□■□■□□□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□■□■□□□■■□□□■□□□■□□□□□□□□■■□□■□□□□□□■□□■□□□□■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□□□□□□□□□■■■□□□□■□■□□■□□□□□□■□□■□■□□□□□□■■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□□□■□■■□□□□□□□□■□□□□□□■□□□■□□□□□□□□■□■□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□■□□■■□□■□■□□□□□□□□□□□□□□□□□□□■□□□□■□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□□□□□■□□□□□■□■■□□□□■□□□■□■■□□□□□■□■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■□■□■□□■□□■■□□□□■□□■□■□□□□□■□■□□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□■■□□□■□□□■□□□□□□□□□■□□■□□□□□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"■□□■□■□□□□□□■■■□□■■□□□□□□□■□■□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□■□□□■□□□□□□□□■□□□■□□□□■□□□□■"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□□□□■□□■□□■□□■□□■□□□□■□□□□"
"□□□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□■□□□■□□□□□□□□■□□■■■□■■□"
"□□□□□□□□□□□□□□□□□□□□□□□□□"
"□□□■□□■□■□□□□□□■□□□□□■□□"
"□□□□□□□□□□□□□□□□□□□□□□□"
"■□■□■□□□□□□□■□□■□□□□■□"
"□□□□□□□□□□□□□□□□□□□□□"
"□□□□□□□□□■□■□□□□□□□□"
"□□□□□□□□□□□□□□□□□□□"
"□□■□□□□□■■□□□■□■□□"
"□□□□□□□□□□□□□□□□□"
"□■□□■□□■□□□□□□□□"
"□□□□□□□□□□□□□□□"
"■□□□□□■□□□■■□□"
"□□□□□□□□□□□□□"
"■□□□□□□■■■■□"
"□□□□□□□□□□□"
"□■□■■□■□□□"
"□□□□□□□□□"
"□■□■■□■□"
"□□□□□□□"
"□□□□□□"
"□□□□□"
"□□□□"
"□□□"
"■■"

170423(2)

Ruby


(q^(-1/5) * R(q))^k

R(q) をRogers-Ramanujan continued fraction とし、
q^(-1/5) * R(q) のk乗を求めてみた。

def s(k, m, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == m}
  s
end

def A(k, n)
  ary = [1]
  a = [0] + (1..n).map{|i| s(5, 1, i) + s(5, 4, i) - s(5, 2, i) - s(5, 3, i)}
  (1..n).each{|i| ary << (1..i).inject(0){|s, j| s - k * a[j] * ary[-j]} / i}
  ary
end

n = 50
-12.upto(12){|i| p [i, A(i, n)]}

出力結果
[-12, [1, 12, 66, 208, 363, 144, -846, -1728, 273, 5940, 7152, -8544, -31328, -13896, 68286, 113248, -49716, -333708, -226980, 559776, 1088016, -205264, -2637306, -2072640, 3758552, 7937772, -573882, -17004528, -14235543, 21634056, 47763486, -563424, -94007685, -80925372, 110254230, 248894112, 5569776, -460233360, -400720638, 507688064, 1157634801, 49340880, -2040275052, -1781566800, 2146085694, 4908249776, 270470166, -8324985024, -7258290919, 8429111520, 19259764860]]
[-11, [1, 11, 55, 154, 220, -22, -682, -891, 946, 4015, 2310, -8700, -16753, 3982, 47729, 41536, -72864, -173580, -4411, 391622, 388960, -489566, -1300926, -169345, 2565915, 2682999, -2800094, -7881984, -1424555, 14187580, 15122822, -14100867, -40818041, -8405783, 68831499, 73713288, -63884645, -187221892, -41049074, 300402069, 321058441, -264775808, -778765691, -176168784, 1201506889, 1277513600, -1016869810, -2987754539, -686500551, 4464395892, 4715935928]]
[-10, [1, 10, 45, 110, 120, -98, -485, -340, 1045, 2320, -174, -6580, -6995, 9120, 26970, 5998, -56950, -69760, 59785, 209470, 67523, -380000, -487155, 337020, 1282540, 466352, -2104240, -2734190, 1663345, 6599200, 2510530, -10102740, -13118530, 7380420, 29800970, 11533800, -43312975, -55908670, 29856435, 121296270, 47153292, -169326330, -216794900, 111693820, 453639990, 176106794, -612918540, -777964670, 390448770, 1580419670, 610948982]]
[-9, [1, 9, 36, 75, 54, -117, -303, -27, 855, 1087, -1080, -4041, -1635, 8100, 12060, -6588, -33219, -17064, 55029, 86139, -35343, -205974, -111996, 305973, 482736, -167859, -1053612, -581959, 1450638, 2277414, -720987, -4671711, -2576943, 6093534, 9473373, -2824029, -18545583, -10165032, 23196852, 35678328, -10227222, -67350339, -36601215, 81483183, 124005132, -34570244, -227236941, -122408271, 267459084, 403024239, -110094912]]
[-8, [1, 8, 28, 48, 14, -104, -160, 112, 573, 336, -1112, -2000, 602, 5192, 3680, -7776, -14970, 2520, 32680, 23840, -43362, -83696, 10688, 166336, 120929, -202864, -387928, 41552, 721344, 518200, -831392, -1567936, 153208, 2780992, 1972020, -3067952, -5710154, 524656, 9756720, 6831888, -10404845, -19126232, 1693320, 31719984, 21959178, -32893728, -59802336, 5154736, 96738057, 66286688, -98010020]]
[-7, [1, 7, 21, 28, -7, -77, -63, 141, 315, -28, -791, -721, 1071, 2569, 119, -5145, -4788, 5922, 14329, 980, -25956, -23619, 27433, 65086, 5054, -109739, -97986, 108864, 254002, 20153, -408044, -357665, 387436, 889077, 71337, -1374246, -1186647, 1259531, 2850750, 227493, -4276111, -3643794, 3811186, 8521205, 676788, -12464011, -10503535, 10850504, 24008957, 1892218, -34387689]]
[-6, [1, 6, 15, 14, -15, -48, -8, 114, 132, -140, -432, -102, 808, 930, -771, -2446, -621, 4002, 4448, -3522, -10767, -2628, 16446, 17754, -13463, -40332, -9744, 58338, 61647, -45768, -134315, -31782, 187119, 194342, -141390, -408918, -95570, 552048, 565320, -405948, -1158321, -267150, 1525548, 1544100, -1095213, -3092344, -706296, 3987330, 3996003, -2807736, -7852974]]
[-5, [1, 5, 10, 5, -15, -24, 15, 70, 30, -125, -175, 95, 420, 180, -615, -826, 410, 1760, 705, -2415, -3100, 1530, 6270, 2460, -8090, -10174, 4840, 19570, 7500, -24360, -30024, 14130, 55970, 21155, -67380, -81926, 37895, 148410, 55305, -174500, -209577, 96025, 371620, 137160, -427665, -508800, 230670, 885070, 323605, -1001340, -1181123]]
[-4, [1, 4, 6, 0, -11, -8, 18, 32, -10, -72, -42, 96, 153, -40, -288, -160, 344, 524, -146, -944, -501, 1080, 1602, -416, -2727, -1436, 2970, 4336, -1131, -7176, -3694, 7616, 10942, -2776, -17562, -8960, 18136, 25784, -6528, -40608, -20472, 41176, 57974, -14464, -89538, -44808, 89202, 124608, -30961, -189736, -94188]]
[-3, [1, 3, 3, -2, -6, 0, 12, 9, -15, -28, 3, 48, 33, -48, -87, 7, 135, 90, -134, -234, 21, 356, 237, -330, -575, 42, 831, 540, -762, -1296, 107, 1848, 1191, -1633, -2769, 210, 3842, 2448, -3366, -5634, 444, 7722, 4889, -6624, -11028, 840, 14871, 9342, -12636, -20877, 1608]]
[-2, [1, 2, 1, -2, -2, 2, 5, 0, -8, -6, 7, 14, 1, -18, -15, 14, 30, 2, -40, -32, 32, 66, 6, -82, -65, 60, 125, 8, -157, -120, 117, 238, 19, -286, -222, 206, 419, 28, -507, -386, 366, 732, 55, -864, -659, 610, 1224, 86, -1442, -1090, 1016]]
[-1, [1, 1, 0, -1, 0, 1, 1, -1, -2, 0, 2, 2, -1, -3, -1, 3, 3, -2, -5, -1, 6, 5, -3, -8, -2, 8, 7, -5, -12, -2, 13, 12, -7, -18, -4, 18, 16, -11, -26, -5, 27, 24, -14, -37, -8, 37, 33, -21, -52, -10, 53]]
[0, [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
[1, [1, -1, 1, 0, -1, 1, -1, 1, 0, -1, 2, -3, 2, 0, -2, 4, -4, 3, -1, -3, 6, -7, 5, 0, -5, 9, -10, 7, -1, -7, 14, -16, 11, -1, -11, 20, -22, 16, -2, -15, 29, -33, 23, -2, -23, 41, -45, 32, -4, -30, 57]]
[2, [1, -2, 3, -2, -1, 4, -6, 6, -3, -2, 9, -16, 17, -10, -5, 24, -36, 36, -21, -10, 46, -74, 77, -42, -22, 94, -144, 142, -78, -38, 172, -266, 266, -146, -73, 312, -471, 464, -251, -122, 534, -814, 801, -432, -213, 910, -1364, 1328, -713, -344, 1485]]
[3, [1, -3, 6, -7, 3, 6, -17, 24, -21, 6, 21, -54, 77, -72, 24, 64, -159, 216, -190, 57, 159, -392, 534, -468, 144, 381, -924, 1220, -1044, 312, 833, -1992, 2625, -2244, 669, 1746, -4138, 5382, -4530, 1332, 3474, -8184, 10591, -8886, 2607, 6724, -15711, 20160, -16771, 4872, 12537]]
[4, [1, -4, 10, -16, 15, 0, -30, 64, -81, 60, 12, -128, 250, -312, 234, 32, -443, 848, -1014, 720, 109, -1312, 2448, -2880, 2033, 280, -3550, 6512, -7513, 5184, 744, -8832, 15980, -18252, 12492, 1712, -20745, 37168, -41942, 28352, 3918, -46288, 82146, -92000, 61785, 8384, -99174, 174720, -194134, 129288, 17546]]
[5, [1, -5, 15, -30, 40, -26, -30, 125, -220, 245, -124, -180, 615, -1010, 1085, -550, -705, 2415, -3850, 3980, -1926, -2460, 8090, -12550, 12715, -6074, -7500, 24360, -37150, 36930, -17251, -21155, 67380, -101210, 99295, -45924, -55305, 174500, -259140, 251275, -114750, -137160, 427665, -628760, 604095, -273626, -323605, 1001340, -1460180, 1391295, -624848]]
[6, [1, -6, 21, -50, 84, -90, 15, 180, -465, 700, -648, 72, 1097, -2580, 3648, -3242, 423, 4902, -11256, 15408, -13227, 1650, 18738, -41724, 55617, -46668, 5838, 63070, -137982, 180540, -148656, 18150, 194097, -417430, 537648, -436392, 52910, 553836, -1176561, 1496930, -1200285, 143478, 1488820, -3127542, 3937044, -3125154, 370716, 3801276, -7913772, 9873882, -7769451]]
[7, [1, -7, 28, -77, 154, -217, 161, 153, -791, 1589, -2044, 1393, 1029, -5194, 9766, -11886, 7854, 5005, -25599, 46718, -55055, 35343, 21175, -106484, 189049, -217056, 136318, 78498, -389761, 678720, -764477, 471541, 265097, -1296771, 2220792, -2461759, 1496320, 825643, -3991211, 6745704, -7381913, 4431749, 2411821, -11530029, 19265841, -20850886, 12386906, 6663874, -31560228, 52229899, -55998628]]
[8, [1, -8, 36, -112, 258, -440, 496, -112, -1049, 3008, -5024, 5360, -1686, -7608, 21376, -33856, 34543, -11472, -41404, 114544, -175940, 174296, -58176, -189648, 514298, -769664, 744088, -246336, -760302, 2026752, -2973920, 2821440, -924075, -2754880, 7231920, -10437504, 9746754, -3156520, -9190608, 23812704, -33904299, 31248712, -10015232, -28651536, 73391344, -103282720, 94125760, -29878640, -84321679, 213851288, -297958584]]
[9, [1, -9, 45, -156, 405, -801, 1149, -891, -855, 4790, -10377, 14643, -11859, -4617, 37629, -79635, 107685, -85473, -22238, 222066, -459927, 604212, -470070, -97497, 1091517, -2213721, 2838285, -2165007, -395307, 4681476, -9324735, 11726838, -8797455, -1482462, 18079857, -35454276, 43868498, -32431977, -5193486, 64142478, -124102764, 151475247, -110588673, -17095158, 212139153, -405679769, 489372516, -353362500, -53284155, 661073463, -1251327069]]
[10, [1, -10, 55, -210, 605, -1352, 2300, -2630, 570, 6160, -18522, 32990, -38590, 17410, 47685, -156802, 272890, -310500, 152005, 293580, -992876, 1689240, -1877000, 935940, 1528385, -5203696, 8670710, -9431000, 4695055, 6993230, -23725756, 38827080, -41481615, 20507870, 28831575, -97132194, 156500450, -164639160, 80660650, 109125120, -364517778, 579443490, -601542940, 291999320, 384334330, -1272738402, 1999485490, -2051852270, 987093095, 1272932000, -4179922966]]
[11, [1, -11, 66, -275, 869, -2156, 4191, -6006, 4620, 5181, -28567, 64481, -96602, 87120, 16467, -251394, 585981, -862455, 781869, 9570, -1694869, 3957690, -5706403, 5118102, -279202, -9495167, 22012485, -31127305, 27513706, -2334640, -46296943, 106191976, -147598473, 128617808, -12933437, -202295874, 458844166, -628202520, 540216358, -58910874, -808452601, 1813784654, -2450591627, 2082298097, -237047955, -2998544692, 6658914075, -8892531846, 7475107233, -870993739, -10436689692]]
[12, [1, -12, 78, -352, 1209, -3288, 7138, -12000, 13596, -2080, -36606, 111360, -206181, 256200, -139284, -285984, 1071087, -2009256, 2489364, -1528464, -1838544, 7740064, -14427624, 17621568, -11162727, -10219044, 46056996, -84876912, 102019968, -64998576, -50685750, 237269856, -431725065, 511081936, -324642030, -228454608, 1091778688, -1962068232, 2290731408, -1445700960, -949337475, 4583473284, -8141849946, 9387812304, -5879310774, -3676838200, 17824500348, -31325988576, 35717952769, -22191221580, -13392004356]]

170423

Ruby


5/2

Clifford A. Pickover のA Passion for Mathematics に
以下の無限積が載っていた。
Product_{i>=1} (prime(i)^2 + 1)/(prime(i)^2 - 1) = 5/2
そこで、
Product_{i=1..n} (prime(i)^2 + 1)/(prime(i)^2 - 1) = Product_{i=1..n} (1 + 2/(prime(i)^2 - 1))
を計算してみた。

require 'prime'

n = 30
s = 1
Prime.take(n).each_with_index{|e, i| p [i + 1, s *= 1 + 2r / (e * e - 1)]}

出力結果
[1, (5/3)]
[2, (25/12)]
[3, (325/144)]
[4, (8125/3456)]
[5, (99125/41472)]
[6, (8425625/3483648)]
[7, (1221715625/501645312)]
[8, (44226105625/18059231232)]
[9, (11719917990625/4767637045248)]
[10, (986817094810625/400481511800832)]
[11, (94931804520782125/38446225132879872)]
[12, (65028286096735755625/26297217990889832448)]
[13, (10937757721470954096125/4417932622469491851264)]
[14, (10117425892360632538915625/4082169743161810470567936)]
[15, (11179755611058498955501765625/4506715396450638759507001344)]
[16, (1208273587195168540959998515625/486725262816668986026756145152)]
[17, (14507615967633023653871430453125/5840703153800027832321073741824)]
[18, (5399734663153011403970946414653125/2172741573213610353623439431958528)]
[19, (713082606986971211877339688288015625/286801887664196566678294005018525696)]
[20, (359536250442830885028554670834817478125/144548151382755069605860178529336950784)]
[21, (25896327227841738070299951291210502140625/10407466899558365011621932854112260456448)]
[22, (1243422111970677915652402276613353495090625/499558411178801520557852776997388501909504)]
[23, (104477784774121595595671362022756165624078125/41962906539019327726859633267780634160398336)]
[24, (82767301098059128030890852994427434407394690625/33234621978903307559672829548082262255035482112)]
[25, (389420151666368197385341463338781078886792019390625/156335661788761158760700990194178961647686907854848)]
[26, (4673958102706221587912063069390875960944767272733125/1876027941465133905128411882330147539772242894258176)]
[27, (112196143596635771601237532050310393542135703085290625/45024670595163213723081885175923540954533829462196224)]
[28, (12119300416806411177680846622415603830730696229496015625/4862664424277627082092843598999742423089653581917192192)]
[29, (14400152755249377761320381956754220471674213259887165765625/5776845336041820973526298195611693998630508455317624324096)]
[30, (91944975342267277006030638793875697711639851664379553413515625/36879380625290985094991887680785054487257165978747713685028864)]

2017年4月2日日曜日

170402

Ruby


A109091 の計算

二通りで計算してみたが、後者の方がコードがシンプル。

# m次以下を取り出す
def mul(f_ary, b_ary, m)
  s1, s2 = f_ary.size, b_ary.size
  ary = Array.new(s1 + s2 - 1, 0)
  (0..s1 - 1).each{|i|
    (0..s2 - 1).each{|j|
      ary[i + j] += f_ary[i] * b_ary[j]
    }
  }
  ary[0..m]
end

def p0(n)
  (3 * n * n - n) / 2
end

def p1(n)
  (3 * n * n + n) / 2
end

def A010815(n)
  ary = Array.new(n + 1, 0)
  ary[0] = 1
  i = 1
  j = p0(i)
  while j <= n
    ary[j] = (-1) ** i
    i += 1
    j = p0(i)
  end
  i = 1
  j = p1(i)
  while j <= n
    ary[j] = (-1) ** i
    i += 1
    j = p1(i)
  end
  ary
end

# m次以下を取り出す
def power(ary, n, m)
  return [1] if n == 0
  k = power(ary, n >> 1, m)
  k = mul(k, k, m)
  return k if n & 1 == 0
  return mul(k, ary, m)
end

def f(ary, k, n)
  aryk = Array.new(n + 1, 0)
  (0..n / k).each{|i| aryk[k * i] = ary[i]}
  aryk
end

def A(k, n)
  ary = A010815(n)
  aryk = power(ary, k, n)
  ps = Array.new(n + 1, 0)
  ps[0] = 1
  (1..n).each{|num|
    (num..n).each{|i|
      ps[i] += ps[i - num]
    }
  }
  psk = f(ps, k, n)
  mul(aryk, psk, n)
end

def A109091_1(n)
  ary = A(5, n)
  (1..n).map{|i| - ary[i] / 5}
end

def s(k, m, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == m}
  s
end

def A109091_2(n)
  (1..n).map{|i| s(5, 1, i) + s(5, 4, i) - s(5, 2, i) - s(5, 3, i)}
end

n = 1000
p ary = A109091_1(n)
p ary == A109091_2(n)

出力結果
[1, -1, -2, 3, 1, 2, -6, -5, 7, -1, 12, -6, -12, 6, -2, 11, -16, -7, 20, 3, 12, -12, -22, 10, 1, 12, -20, -18, 30, 2, 32, -21, -24, 16, -6, 21, -36, -20, 24, -5, 42, -12, -42, 36, 7, 22, -46, -22, 43, -1, 32, -36, -52, 20, 12, 30, -40, -30, 60, -6, 62, -32, -42, 43, -12, 24, -66, -48, 44, 6, 72, -35, -72, 36, -2, 60, -72, -24, 80, 11, 61, -42, -82, 36, -16, 42, -60, -60, 90, -7, 72, -66, -64, 46, 20, 42, -96, -43, 84, 3, 102, -32, -102, 60, 12, 52, -106, -60, 110, -12, 72, -66, -112, 40, -22, 90, -84, -60, 96, 10, 133, -62, -84, 96, 1, 42, -126, -85, 84, 12, 132, -72, -120, 66, -20, 80, -136, -44, 140, -18, 92, -72, -144, 77, 30, 72, -86, -108, 150, 2, 152, -100, -112, 72, 32, 72, -156, -80, 104, -21, 132, -61, -162, 126, -24, 82, -166, -60, 157, 16, 140, -126, -172, 60, -6, 132, -120, -90, 180, 21, 182, -72, -124, 110, -36, 64, -192, -138, 120, -20, 192, -86, -192, 96, 24, 129, -196, -84, 200, -5, 132, -102, -180, 96, 42, 102, -154, -132, 240, -12, 212, -156, -144, 106, -42, 100, -192, -110, 144, 36, 192, -72, -222, 126, 7, 112, -226, -120, 230, 22, 144, -150, -232, 84, -46, 180, -160, -96, 240, -22, 242, -133, -182, 186, 43, 84, -240, -160, 164, -1, 252, -126, -264, 126, 32, 171, -256, -84, 216, -36, 210, -132, -262, 120, -52, 120, -180, -198, 270, 20, 272, -176, -144, 136, 12, 132, -276, -140, 224, 30, 282, -92, -282, 216, -40, 144, -252, -147, 273, -30, 192, -216, -292, 86, 60, 180, -240, -150, 264, -6, 252, -152, -204, 220, 62, 112, -306, -216, 204, -32, 312, -120, -312, 156, -42, 240, -316, -104, 360, 43, 212, -132, -320, 183, -12, 162, -220, -210, 276, 24, 332, -246, -252, 166, -66, 132, -336, -157, 224, -48, 384, -140, -300, 210, 44, 172, -346, -180, 350, 6, 240, -252, -352, 120, 72, 270, -192, -180, 360, -35, 381, -182, -266, 216, -72, 124, -366, -242, 294, 36, 312, -192, -372, 192, -2, 230, -360, -120, 380, 60, 252, -192, -382, 170, -72, 192, -294, -288, 390, -24, 352, -215, -264, 196, 80, 252, -396, -200, 240, 11, 402, -132, -384, 306, 61, 180, -432, -160, 410, -42, 272, -306, -360, 154, -82, 252, -280, -240, 420, 36, 422, -212, -322, 260, -16, 144, -372, -318, 288, 42, 432, -220, -432, 192, -60, 330, -440, -144, 440, -60, 301, -192, -442, 216, 90, 222, -300, -258, 450, -7, 504, -336, -304, 226, 72, 200, -456, -230, 320, -66, 462, -144, -462, 330, -64, 232, -466, -252, 396, 46, 312, -300, -504, 160, 20, 288, -364, -240, 480, 42, 432, -242, -264, 399, -96, 182, -486, -310, 324, -43, 492, -252, -480, 240, 84, 352, -432, -164, 500, 3, 332, -252, -502, 210, 102, 264, -314, -378, 510, -32, 432, -341, -400, 256, -102, 252, -552, -216, 344, 60, 522, -210, -522, 396, 12, 262, -512, -264, 507, 52, 420, -360, -504, 180, -106, 330, -360, -270, 516, -60, 542, -272, -364, 336, 110, 144, -546, -408, 434, -12, 600, -220, -480, 276, 72, 420, -556, -224, 504, -66, 384, -282, -562, 276, -112, 282, -366, -360, 570, 40, 572, -432, -384, 252, -22, 301, -576, -273, 384, 90, 492, -192, -624, 360, -84, 292, -586, -258, 640, -60, 392, -396, -592, 240, 96, 450, -400, -264, 600, 10, 602, -252, -462, 456, 133, 204, -606, -420, 360, -62, 552, -336, -612, 306, -84, 360, -616, -204, 620, 96, 440, -312, -540, 264, 1, 312, -480, -468, 576, 42, 632, -400, -424, 316, -126, 312, -516, -360, 504, -85, 642, -212, -642, 396, 84, 320, -646, -305, 720, 12, 384, -486, -652, 220, 132, 462, -504, -276, 660, -72, 662, -332, -384, 410, -120, 252, -660, -498, 444, 66, 744, -252, -672, 336, -20, 471, -676, -224, 576, 80, 452, -384, -682, 420, -136, 300, -460, -462, 624, -44, 692, -516, -504, 346, 140, 300, -672, -350, 464, -18, 702, -240, -720, 516, 92, 352, -612, -360, 710, -72, 560, -450, -704, 192, -144, 540, -480, -360, 720, 77, 612, -381, -484, 546, 30, 266, -726, -360, 547, 72, 672, -372, -732, 366, -86, 462, -792, -294, 740, -108, 480, -312, -742, 320, 150, 372, -574, -576, 636, 2, 752, -506, -504, 360, 152, 360, -756, -380, 528, -100, 762, -252, -660, 576, -112, 382, -720, -342, 770, 72, 512, -576, -772, 294, 32, 480, -432, -390, 840, 72, 864, -352, -600, 473, -156, 264, -786, -588, 524, -80, 672, -420, -744, 396, 104, 600, -796, -240, 736, -21, 630, -402, -864, 396, 132, 384, -540, -510, 810, -61, 812, -540, -544, 432, -162, 352, -840, -410, 504, 126, 822, -272, -822, 510, -24, 360, -826, -462, 830, 82, 552, -516, -688, 280, -166, 720, -640, -420, 840, -60, 871, -422, -564, 636, 157, 322, -798, -572, 564, 16, 792, -432, -852, 372, 140, 530, -856, -288, 860, -126, 504, -432, -862, 420, -172, 432, -546, -576, 960, 60, 792, -550, -672, 440, -6, 432, -876, -440, 584, 132, 882, -301, -882, 576, -120, 442, -886, -360, 756, -90, 732, -666, -920, 300, 180, 510, -528, -450, 960, 21, 832, -504, -504, 560, 182, 304, -906, -678, 714, -72, 912, -440, -984, 456, -124, 690, -792, -320, 920, 110, 612, -462, -864, 432, -36, 462, -714, -630, 930, 64, 860, -696, -624, 466, -192, 420, -936, -396, 624, -138, 942, -312, -924, 660, 120, 504, -946, -480, 864, -20, 632, -480, -952, 364, 192, 720, -720, -480, 816, -86, 993, -432, -742, 726, -192, 264, -966, -665, 640, 96, 972, -546, -840, 486, 24, 682, -976, -324, 1080, 129, 770, -492, -982, 420, -196, 480, -552, -720, 924, -84, 992, -672, -664, 432, 200, 492, -996, -500, 720, -5]
true

2017年3月28日火曜日

170328

Ruby


Product_{k >= 1} (1 - x^k)^m の計算

以下の方法だとm の絶対値が大きくなっても大丈夫。

def s(n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0}
  s
end

def A(k, n)
  ary = [1]
  a = [0] + (1..n).map{|i| s(i)}
  (1..n).each{|i| ary << (1..i).inject(0){|s, j| s - k * a[j] * ary[-j]} / i}
  ary
end

n = 15
-24.upto(24){|i| p [i, A(i, n)]}

出力結果
[-24, [1, 24, 324, 3200, 25650, 176256, 1073720, 5930496, 30178575, 143184000, 639249300, 2705114880, 10914317934, 42189811200, 156883829400, 563116739584]]
[-23, [1, 23, 299, 2852, 22126, 147407, 871838, 4680845, 23177583, 107100903, 466066181, 1923780950, 7576060505, 28601630657, 103928814438, 364712523658]]
[-22, [1, 22, 275, 2530, 18975, 122430, 702328, 3661900, 17627775, 79264900, 335937954, 1351507830, 5191041625, 19125838600, 67862904725, 232671319474]]
[-21, [1, 21, 252, 2233, 16170, 100926, 560945, 2837418, 13266099, 57994475, 239170239, 937026279, 3507380170, 12601619226, 43628951025, 146036139347]]
[-20, [1, 20, 230, 1960, 13685, 82524, 443870, 2175800, 9869990, 41907380, 168012824, 640438680, 2334121995, 8171039800, 27580783270, 90058003200]]
[-19, [1, 19, 209, 1710, 11495, 66880, 347681, 1649637, 7252300, 29875505, 116319938, 430976031, 1527928814, 5206792965, 17119704425, 54484060983]]
[-18, [1, 18, 189, 1482, 9576, 53676, 269325, 1235286, 5256711, 20985272, 79260723, 285139764, 982349361, 3255488082, 10416507579, 32281134120]]
[-17, [1, 17, 170, 1275, 7905, 42619, 206091, 912475, 3753600, 14503040, 53073898, 185172670, 619237835, 1993524975, 6200890505, 18693654410]]
[-16, [1, 16, 152, 1088, 6460, 33440, 155584, 663936, 2636326, 9845040, 34861152, 117809728, 381946360, 1193074144, 3603543040, 10556065152]]
[-15, [1, 15, 135, 920, 5220, 25893, 115700, 475065, 1817910, 6551390, 22414314, 73265580, 229972855, 696109950, 2039031360, 5796944357]]
[-14, [1, 14, 119, 770, 4165, 19754, 84602, 333608, 1228080, 4263770, 14071827, 44420796, 134793918, 394805110, 1119974875, 3086034350]]
[-13, [1, 13, 104, 637, 3276, 14820, 60697, 229372, 810654, 2706366, 8600501, 26173966, 76654656, 216903064, 594973106, 1586553501]]
[-12, [1, 12, 90, 520, 2535, 10908, 42614, 153960, 521235, 1669720, 5098938, 14931072, 42124380, 114945780, 304351020, 784087848]]
[-11, [1, 11, 77, 418, 1925, 7854, 29183, 100529, 325193, 997150, 2919411, 8207563, 22259237, 58454165, 149104450, 370410700]]
[-10, [1, 10, 65, 330, 1430, 5512, 19415, 63570, 195910, 573430, 1605340, 4322110, 11240645, 28341730, 69488650, 166096270]]
[-9, [1, 9, 54, 255, 1035, 3753, 12483, 38709, 113265, 315445, 841842, 2164185, 5382276, 12994290, 30543210, 70066809]]
[-8, [1, 8, 44, 192, 726, 2464, 7704, 22528, 62337, 164560, 417140, 1020416, 2418710, 5573568, 12520744, 27484160]]
[-7, [1, 7, 35, 140, 490, 1547, 4522, 12405, 32305, 80465, 192899, 447146, 1006145, 2204475, 4715510, 9869132]]
[-6, [1, 6, 27, 98, 315, 918, 2492, 6372, 15525, 36280, 81816, 178794, 380051, 788004, 1597725, 3174210]]
[-5, [1, 5, 20, 65, 190, 506, 1265, 2990, 6765, 14725, 31027, 63505, 126730, 247170, 472295, 885723]]
[-4, [1, 4, 14, 40, 105, 252, 574, 1240, 2580, 5180, 10108, 19208, 35693, 64960, 116090, 203984]]
[-3, [1, 3, 9, 22, 51, 108, 221, 429, 810, 1479, 2640, 4599, 7868, 13209, 21843, 35581]]
[-2, [1, 2, 5, 10, 20, 36, 65, 110, 185, 300, 481, 752, 1165, 1770, 2665, 3956]]
[-1, [1, 1, 2, 3, 5, 7, 11, 15, 22, 30, 42, 56, 77, 101, 135, 176]]
[0, [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
[1, [1, -1, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, -1]]
[2, [1, -2, -1, 2, 1, 2, -2, 0, -2, -2, 1, 0, 0, 2, 3, -2]]
[3, [1, -3, 0, 5, 0, 0, -7, 0, 0, 0, 9, 0, 0, 0, 0, -11]]
[4, [1, -4, 2, 8, -5, -4, -10, 8, 9, 0, 14, -16, -10, -4, 0, -8]]
[5, [1, -5, 5, 10, -15, -6, -5, 25, 15, -20, 9, -45, -5, 25, 20, 10]]
[6, [1, -6, 9, 10, -30, 0, 11, 42, 0, -70, 18, -54, 49, 90, 0, -22]]
[7, [1, -7, 14, 7, -49, 21, 35, 41, -49, -133, 98, -21, 126, 112, -176, -105]]
[8, [1, -8, 20, 0, -70, 64, 56, 0, -125, -160, 308, 0, 110, 0, -520, 0]]
[9, [1, -9, 27, -12, -90, 135, 54, -99, -189, -85, 657, -162, -135, -171, -810, 702]]
[10, [1, -10, 35, -30, -105, 238, 0, -260, -165, 140, 1054, -770, -595, 0, -715, 2162]]
[11, [1, -11, 44, -55, -110, 374, -143, -462, 55, 495, 1287, -2069, -902, 1210, -275, 3795]]
[12, [1, -12, 54, -88, -99, 540, -418, -648, 594, 836, 1056, -4104, -209, 4104, -594, 4256]]
[13, [1, -13, 65, -130, -65, 728, -871, -715, 1560, 845, 78, -6513, 2730, 8605, -4355, 2483]]
[14, [1, -14, 77, -182, 0, 924, -1547, -506, 3003, 0, -1729, -8372, 9177, 13090, -15625, 0]]
[15, [1, -15, 90, -245, 105, 1107, -2485, 195, 4860, -2420, -3990, -8190, 19695, 13755, -38475, 3990]]
[16, [1, -16, 104, -320, 260, 1248, -3712, 1664, 6890, -7280, -5568, -4160, 33176, 4640, -74240, 29824]]
[17, [1, -17, 119, -408, 476, 1309, -5236, 4233, 8602, -15470, -4250, 5236, 45815, -21182, -117776, 101065]]
[18, [1, -18, 135, -510, 765, 1242, -7038, 8280, 9180, -27710, 3519, 20196, 50370, -68850, -153765, 244782]]
[19, [1, -19, 152, -627, 1140, 988, -9063, 14212, 7410, -44270, 22781, 38114, 36176, -137256, -154850, 480605]]
[20, [1, -20, 170, -760, 1615, 476, -11210, 22440, 1615, -64600, 60002, 51680, -9520, -213180, -83980, 803528]]
[21, [1, -21, 189, -910, 2205, -378, -13321, 33345, -10395, -86870, 122703, 46683, -98287, -264915, 96390, 1163064]]
[22, [1, -22, 209, -1078, 2926, -1672, -15169, 47234, -31350, -107426, 218680, -266, -234707, -237006, 405878, 1444806]]
[23, [1, -23, 230, -1265, 3795, -3519, -16445, 64285, -64515, -120175, 354706, -123763, -407560, -48530, 817190, 1464341]]
[24, [1, -24, 252, -1472, 4830, -6048, -16744, 84480, -113643, -115920, 534612, -370944, -577738, 401856, 1217160, 987136]]

2017年3月18日土曜日

170318

Ruby


Class numbers h(-p) where p runs though the primes p == 3 (mod 4)

オンライン整数列大辞典の
A002143(http://oeis.org/A002143/list)
と比較し、答え合わせしてみる。

require 'prime'

# 0 <= a <= p
def f(a, p)
  return 0 if a % p == 0
  flag = false
  (1..p - 1).each{|i|
    flag = true if (i * i) % p == a
  }
  return 1 if flag
  -1
end

def h(p)
  -(1..p - 1).inject(0){|s, i| s + f(i, p) * i} / p
end

def A002143(n)
  ary = [1]
  Prime.each(10 ** 7){|i|
    break if ary.size == n
    ary << h(i) if i > 3 && i % 4 == 3
  }
  ary
end
ary = A002143(88)

# OEIS A002143のデータ
ary0 =
[1,1,1,1,3,3,1,5,3,1,7,5,3,5,3,5,5,3,7,1,11,5,13,
 9,3,7,5,15,7,13,11,3,3,19,3,5,19,9,3,17,9,21,15,5,
 7,7,25,7,9,3,21,5,3,9,5,7,25,13,5,13,3,23,11,5,5,
 31,13,5,21,15,5,7,9,7,33,7,21,3,29,3,31,19,5,11,
 15,27,17,13]
# 一致の確認
p ary == ary0

2017年3月9日木曜日

170309

新たな整数列(23)

https://oeis.org/A281959
が追加されました。