2016年11月13日日曜日

161113

Ruby


二項係数の累乗を含む数列の和について

調べてみた。

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

def A(k, n)
  (1..n).map{|i| (0..i).inject(0){|s, j| s + (ncr(i, j) * ncr(i + j, j + 1)) ** k} / 2}
end

def B(k, n)
  ary = [1]
  (1..n).each{|i|
    x = (0..i).inject(0){|s, j| s + (ncr(i, j) * ncr(i + j, j + 1)) ** k}
    break if x % (i ** k) > 0
    ary << x / (i ** k)
  }
  ary
end

def C(n)
  (1..n).map{|i| (0..i).map{|j| ncr(i, j) * ncr(i + j, j + 1)}}
end

m = 5
n = 30
# A050151, A277060
(1..m).each{|i| p [i, A(i, n)]}
# A006318, A074635
(1..m).each{|i| p [i, B(i, n)]}
p C(n)

出力結果
[1, [1, 6, 33, 180, 985, 5418, 29953, 166344, 927441, 5188590, 29113953, 163786428, 923511849, 5217709266, 29532022785, 167417253648, 950453221153, 5402869685334, 30748881013153, 175186193208900, 999071379620601, 5702750629608186, 32578618535692033, 186257611786501080, 1065624282362141425, 6100719922333885758, 34948245027968610273, 200317685527369810764, 1148806461389900452425, 6591641739234215424930]]
[2, [1, 28, 729, 19376, 529575, 14835780, 424231465, 12338211520, 363931754949, 10862528888300, 327501958094003, 9959845931792784, 305175084350065267, 9412306255856822388, 291982561878565118025, 9104382992541189221120, 285193639693249101509985, 8970637585824615570978780, 283222792618478916671835253, 8972332879718539925550732400, 285118405750465250320452124071, 9086037627026097584257344640388, 290304386217236962859910189632379, 9297676313921225339813620727309376, 298441239966616936920288872791658125, 9599245827894164000120030631211130380, 309347642905261215565927498346659305015, 9986924929897130623134502765231229101520, 322954527928778936491862589793545940878155, 10459952817435228407918880739510447854268500]]
[3, [1, 144, 18117, 2355840, 322802500, 46202330664, 6848342783821, 1044731910140928, 163230721908587523, 26019355522637664000, 4218596109562611374928, 694012114361192798238912, 115624118396327784237722286, 19477009140049013687857350936, 3312983583649527529158780076125, 568413946958328018306285588946944, 98278566124529410660270053738687541, 17110469281471419525646625182382521968, 2997665827199819408818066047244636835215, 528167664596172348506373322885242855840000, 93542680498388146110893100004547812360543656, 16645882626317975647717606806100853501581334664, 2975058772045108677932511068951433369042721079992, 533860976899387963238108569930029988756582100467200, 96155364156453958918425150106379368262324596585234375, 17378592308977011938027213276221489065457065596253218784, 3150987487382216141352275708164893612112667637695896716546, 573027721088654334175821801997093694164498213780754678276928, 104500059725010641264307220508668012063819291697159453309153490, 19107001478095388936231648470748225718067029056992781445088875000]]
[4, [1, 784, 482841, 301957376, 207306155625, 152210574183312, 116979100583031673, 93577090316082614272, 77469835161431379832137, 65968467450930706053050000, 57525658999813095558319636553, 51201090453547947026680317833472, 46387593014712417130238217013425313, 42682568713669725947701240177326669840, 39813011682187900739564293906053523685625, 37588857549776172122458363313931503886467072, 35874915732243491274499765182255210433127596113, 34573478841308579193012619826335409041710163237392, 33613003216798212977918748546783115542833320313030929, 32940589653454530114685390364788966269633802711161760000, 32516918077997640508772388323284246331336956919376833124441, 32312765489691903419654973558914742156318116226259439007334544, 32306569605719088908778656343648599634513249127250345192333143641, 32482702820928611482544468250060423496212890333983413289798449893376, 32830237042926206357528954365407578233584960940343216146530639534765625, 33342053189350969816689397603825096665862838703331262441444215425885230992, 34014197243275635331384285290566107515290379925421673658522548371133386525553, 34845415980159752033245633249333404151702411989800134987738246222484064583100672, 35836826045282997928420056525062024475260145646620456868468326386897589626532652337, 36991683992438636192888764807112924722760100069492653221634076240319450625250053130000]]
[5, [1, 4416, 13474593, 39659366400, 136488312475000, 518871454595551008, 2064025694441715203353, 8638408415912979754450944, 37933261315524012614114602071, 172652072807466404773570316400000, 809533472474723837850036369639749628, 3898238316350272437731988585378393934848, 19208516557496960001981817337508815449575054, 96546192454224145428059391401581964308525347936, 493848156623429112708699951266617461042219763115625, 2565856077886561724112748980412302180424736606684971008, 13518125106346050282388145014036222546049470662655440123853, 72115458390305459042557970737827558441077493564016647718417344, 389085928951503368246871290001088689317094999085966740613853540383, 2120872875254727163463817496193475259614992617986655687371471360000000, 11669203409496261259872311694727522717665295235864445420758844204304316676, 64756211176525524216935121228913532565824759084064813270116793711634750221216, 362187374817709764551009695747822121544594246300755161652011671089414360297992468, 2040468611213736522930163890413427700265099753928552211247895788737135597015805952000, 11572691952239916114706352256003288775634716127528371359989142975087013011018498701171875, 66044340751005125745070965952096173149100850879612797507620242232597521424647440975358737408, 379091943721827815219623828858360217565778943536654209021583850647488889565934271468592125221978, 2187718080592698489942575198527241464802296703173521971289909300453420553285424604584402229669970944, 12688865560015593469888063589582740807337843501971954831029713593058183126164202390912143256589804121050, 73943535164688294645720611184101910562182438700889662635287700146779558353104741329030553817821916612300000]]
[1, [1, 2, 6, 22, 90, 394, 1806, 8558, 41586, 206098, 1037718, 5293446, 27297738, 142078746, 745387038, 3937603038, 20927156706, 111818026018, 600318853926, 3236724317174, 17518619320890, 95149655201962, 518431875418926, 2832923350929742, 15521467648875090, 85249942588971314, 469286147871837366, 2588758890960637798, 14308406109097843626, 79228031819993134650, 439442782615614361662]]
[2, [1, 2, 14, 162, 2422, 42366, 824210, 17315570, 385569110, 8985969258, 217250577766, 5413255505686, 138331193497122, 3611539459764086, 96043941386294106, 2595400550031689938, 71127992129228040790, 1973658406181654681730, 55374306085337133154190, 1569101344146697599289946, 44861664398592699627753662, 1293053994333175738414748862, 37545610029033461091972498514, 1097559116133221031606465745302, 32283598312226476874352849747602, 955011967893174198144924392933306, 28400135585485692308047427902991510, 848690378340908684680185180649271070, 25476849310962067916159445829671502810, 768025036691507577864120308664794151910, 23244339594300507573153068310023217453930]]
[3, [1, 2, 36, 1342, 73620, 5164840, 427799358, 39932027894, 4080984023988, 447820910585974, 52038711045275328, 6338987392280407776, 803254761992121294258, 105256366314363026160876, 14196070801784995399312938, 1963249531051571869131128934, 277545872538246102688616010228, 40007557958285939613380848255114, 5867787819434643184378129349239548, 874082468931278439661194356974671770, 132041916149043087126593330721310713960, 20201421120481189096402785877237406837392, 3126574497805780549909392713392346638163286, 489037358764709242694585529539152357860231952, 77236831148638304866624503751451097910385141850, 12307886612026106741558419213616559137577548362910, 1977536676032887111746382939943273676087513153874968, 320173498692497702723393355501183113561211973550362924, 52207336105015883215727204992446582923150347465447765878, 8569441938989761061487327935435484198927327212854930772820, 1415333442821880661943085071907275979116076226443909736673250]]
[4, [1, 2, 98, 11922, 2359042, 663379698, 234892861394, 97441982992946, 45691938630899714, 23615252297342289234, 13193693490186141210610, 7858159825123023776834866, 4938376779856090569702962754, 3248317146788446982265201989666, 2222124568600048206356790929681730, 1572859720777793609464268401226805874, 1147120896904790409010570169492538570754, 859063366871648837406155701733820486659106, 658693012523025819101749348924238093311045634, 515849375262593334580286347507817090765622122498, 411757370668181626433567379559862078370422533889522, 334396862192169317401415956553948677056750602057546322, 275875670118945968680887350240034339836060687677237202098, 230892325325589094584272185588592090755202054932982266303602, 195811046133105537968656372070676742719261732819633808893943202, 168090813659782176550548246350886800555955000014557266670236874418, 145924745235421421766961055301919998712680047544427989397448511194834, 128007426010697839765408710620995021141727416309323795712120624382136066, 113381846041232012811216788738199591809735565876848627485091648735175657874, 101336883205636791963646857543358366689505714550851661131766091233604718991554, 91337491339354657266392011869414628945086666838253464744775496889677655864814946]]
[5, [1, 2, 276, 110902, 77459700, 87352519984, 133454592231366, 245615004990981758, 527246607416563705716, 1284806222477061850805758, 3453041456149328095471406328, 10053131895793554064861893060456, 31332290994327678415412716896366978, 103468239678620173297001652805244458956, 359025229272863038570459449193721233371978, 1300670042135780379150485468356523354185270158, 4893982082150577018952844582390407906388734067316, 19041530388406790659042628960573103553455694006728058, 76330101261563975514570495200836972727181550030500778716, 314273321827199452240699010823952264684970188256581615366634, 1325545547034204477164885935120922037259370386241659804607169600, 5714453883239548316690655639871552009935746072814773885738302850152, 25130320200016425005485498859411588784695825811414091370946467932376526, 112544460361329333924873082664432930794581409443454198028915385985306985752, 512511607031485229725820003660458587587483662151710845883943732301596960252250, 2370087311818734820291860942029473541249989862917810454525776481297820264656588534, 11117288225034730951208170830061463108162026162561103614197588264624824839252194522816, 52839138719322358869511639995765561455765089778148845625884097046205524862058729834766108, 254232574293902197784797535825758224902837255214243178448004052028802702334479379474558850766, 1237265212203918314852869879652548066160295895853709105328981189016586357611092620009941252592900, 6085887667875579806232149068650363009233122526822194455579234579981856654576521920084819244265178322]]
[[1, 1], [2, 6, 4], [3, 18, 30, 15], [4, 40, 120, 140, 56], [5, 75, 350, 700, 630, 210], [6, 126, 840, 2520, 3780, 2772, 792], [7, 196, 1764, 7350, 16170, 19404, 12012, 3003], [8, 288, 3360, 18480, 55440, 96096, 96096, 51480, 11440], [9, 405, 5940, 41580, 162162, 378378, 540540, 463320, 218790, 43758], [10, 550, 9900, 85800, 420420, 1261260, 2402400, 2917200, 2187900, 923780, 167960], [11, 726, 15730, 165165, 990990, 3699696, 8984976, 14440140, 15242370, 10161580, 3879876, 646646], [12, 936, 24024, 300300, 2162160, 9801792, 29405376, 59860944, 83140200, 77597520, 46558512, 16224936, 2496144], [13, 1183, 35490, 520520, 4424420, 23891868, 86465808, 216164520, 378287910, 462351890, 386694308, 210924168, 67603900, 9657700], [14, 1470, 50960, 866320, 8576568, 54318264, 232792560, 698377680, 1493752260, 2290420132, 2498640144, 1892909200, 946454600, 280816200, 37442160], [15, 1800, 71400, 1392300, 15872220, 116396280, 581981400, 2057719950, 5258617650, 9816086280, 13385572200, 13182760500, 9126526500, 4212243000, 1163381400, 145422675], [16, 2176, 97920, 2170560, 28217280, 237025152, 1365716352, 5609192160, 16827576480, 37394614400, 61871089280, 75932700480, 68144731200, 43432905600, 18614102400, 4808643120, 565722720], [17, 2601, 131784, 3294600, 48430620, 461705244, 3034063032, 14303440008, 49664722250, 129128277850, 253560981960, 376499639880, 419941906020, 346105966500, 204367332600, 81746933040, 19835652870, 2203961430], [18, 3078, 174420, 4883760, 80582040, 864913896, 6425074656, 34420042800, 136724058900, 410172176700, 939667168440, 1651536235440, 2223221855400, 2272083874200, 1731111523200, 952111337760, 357041751660, 81676217700, 8597496600], [19, 3610, 227430, 7088235, 130423524, 1565082288, 13042352400, 78719912700, 354239607150, 1212286655580, 3196028455620, 6537330931950, 10392679943100, 12790990699200, 12060076944960, 8542554502680, 4396903052850, 1551848136300, 335780006100, 33578000610], [20, 4200, 292600, 10094700, 205931880, 2745758400, 25496328000, 172100214000, 870062193000, 3364240479600, 10092721438800, 23702603379000, 43758652392000, 63474089184000, 71937301075200, 62945138440800, 41654871027000, 20146800366000, 6715600122000, 1378465288200, 131282408400], [21, 4851, 371910, 14132580, 317983050, 4684950270, 48188059920, 361410449400, 2037953367450, 8831131258950, 29865280257540, 79640747353440, 168470811709200, 283253122983600, 377670830644800, 396554372177040, 323658347879790, 200964333650850, 91667941665300, 28947771052200, 5651707681620, 513791607420], [22, 5566, 467544, 19481000, 481180700, 7795127340, 88344776520, 731999576880, 4574997355500, 22061653914300, 83433163894080, 250299491682240, 600076986468960, 1153994204748000, 1780448201611200, 2195886115320480, 2147447451011940, 1642165697832660, 960330817446000, 414458563318800, 124337568995640, 23145088600920, 2012616400080], [23, 6348, 581900, 26476450, 714864150, 12676924260, 157556058660, 1434885534225, 9884767013550, 52718757405600, 221418781103520, 741417433695120, 1996123859948400, 4343214552415200, 7652330401874400, 10904570822671020, 12508184178946170, 11445397287924600, 8232654189559800, 4549624683704100, 1863179632374060, 532337037821160, 94684453367400, 7890371113950], [24, 7200, 717600, 35521200, 1044323280, 20190250080, 274010536800, 2730319277400, 20629078984800, 121023930044160, 561110948386560, 2082911853859200, 6248735561577600, 15244168073299200, 30343153593519360, 49307624589468960, 65260091368414800, 69951993362222400, 60134169732436800, 40827936292022880, 21386061867250080, 8332231896331200, 2272426880817600, 386971244197200, 30957699535776], [25, 8125, 877500, 47092500, 1502250750, 31547265750, 465697732500, 5056146810000, 41713211182500, 267891511816500, 1363811332884000, 5579228179980000, 18525898700190000, 50284582186230000, 112062783157884000, 205448435789454000, 309683303947338750, 382549963699653750, 384787097990295000, 311880068897397000, 200494330005469500, 99813194591467500, 37084744235565000, 9674281104930000, 1580132580471900, 121548660036300], [26, 9126, 1064700, 61752600, 2130464700, 48432564180, 774921026880, 9132997816800, 81943285967400, 573603001771800, 3191318518948560, 14312580024375360, 52295965473679200, 156887896421037600, 388484314947331200, 796392845642028960, 1352696671641975660, 1900848264072057300, 2200982200504487400, 2085141032056882800, 1598608124576943480, 975773790326186280, 462817608059851200, 164333788369077600, 41083447092269400, 6446940928325352, 477551179875952], [27, 10206, 1282554, 80159625, 2981938050, 73156880160, 1264568928480, 16123253838120, 156753856759500, 1191329311372200, 7212957467035320, 35299776694733460, 141199106778933840, 465491560809672000, 1272343599546436800, 2894581688968143720, 5491191733483684410, 8685414375836938740, 11428176810311761500, 12450697893339655950, 11146339066418358660, 8106428411940624480, 4710059195870639520, 2133178983637065000, 725280854436602100, 174067405064784504, 26283682246249512, 1877405874732108], [28, 11368, 1534680, 103079340, 4123173600, 108851783040, 2026716531840, 27867352312800, 292607199284400, 2405881416338400, 15791330750875680, 83981168084202480, 366071758315754400, 1319467436566675200, 3958402309700025600, 9928992460164230880, 20880087085345367880, 36847212503550649200, 54516636043264995600, 67428470895617231400, 69354998635492009440, 58846665508902311040, 40704215272956144000, 22564293249138732000, 9777860407960117200, 3189086779211607456, 735943102894986336, 107081668410646160, 7384942649010080], [29, 12615, 1824970, 131397840, 5636967336, 159714074520, 3194281490400, 47229733465200, 533958375564900, 4734430930008780, 33571419321880440, 193289990035069200, 914410337473596600, 3587302093165648200, 11752684952847456960, 32319883620330506640, 74858553973559629350, 146292206784930256050, 241253814697955159100, 335215826738211378960, 391085131194579942120, 380927075838876567000, 307150685656643556000, 202541394164888142000, 107346938907390715260, 44590266930762297108, 13974157727589323880, 3105368383908738640, 435975364243345080, 29065024282889672], [30, 13950, 2157600, 166135200, 7625605680, 231310038960, 4956643692000, 78598207116000, 954094903047000, 9095704742381400, 69458108941821600, 431482191911316000, 2207197366315578000, 9386652535869546000, 33434362365859144800, 100303087097577434400, 254445331240178050500, 547140614235415546500, 998291647026021348000, 1544724969608685664800, 2022854126868516942000, 2233020789400310910000, 2065323575967085980000, 1586407964148631260000, 999437017413637693800, 507406485763846829160, 202384353296121242400, 61036550994068311200, 13079260927300352400, 1773968723472921360, 114449595062769120]]

0 件のコメント:

コメントを投稿