円順列(5)

無限桁の整数クラスを作るのに時間がかかってしまって。


例えば、C30,30を考える。
周期が60でそれより小さい周期を含まないものを考える。
周期がnで同様な集合を、


Qn


と書くとする。
また、周期nで小さな周期は含んでもよい集合を、


Bn


とする。
すると、


|Q60| = |B60| - |B12∪B20∪B30|


と書ける。
円順列として重複を含まない周期nの集合を、


An


とする。
そうすれば、求める個数は、


|A60| = |Q60| / 60 + |A12∪A20∪A30|

Bn = 2nCn


で、

A12∪A20∪A30

= |A12| + |A20| + |A30|
- |A12∩A20|
- |A12∩A30|
- |A20∩A30|
+ |A12∩A20∩A30|
= |A12| + |A20| + |A30|
- |A4|
- |A6|
- |A10|
+ |A2|


と展開して再帰的に答を得る(Qも同様に展開)。
一般の|Qn|に対しては、


n = 2p1n1...pmnm


素因数分解できるとすると、


|Qn| = |Bn| - |∪iBn/pi|


と書けるので、これを同様に展開すればよい。
具体的には、


C2,2 = 2
C3,3 = 4
C4,4 = 10
C5,5 = 26
C6,6 = 80
C7,7 = 246
C8,8 = 810
C9,9 = 2704
C10,10 = 9252
C11,11 = 32066
C12,12 = 112720
C13,13 = 400024
C14,14 = 1432860
C15,15 = 5170604
C16,16 = 18784170
C17,17 = 68635478
C18,18 = 252088496
C19,19 = 930138522
C20,20 = 3446167860
C21,21 = 12815663844
C22,22 = 47820447028
C23,23 = 178987624514
C24,24 = 671825133648
C25,25 = 2528212128776
C26,26 = 9536895064400
C27,27 = 36054433810102
C28,28 = 136583761444364
C29,29 = 518401146543812
C30,30 = 1971076362005880
C31,31 = 7506908923471954
C32,32 = 28634752211620266
C33,33 = 109385279303298134
C34,34 = 418427080552561516
C35,35 = 1602661111666612296
C36,36 = 6146007503971075312
C37,37 = 23596358977508462296
C38,38 = 90692376956955350244
C39,39 = 348936088066654523296
C40,40 = 1343840109168425292660
C41,41 = 5180299766448679532060
C42,42 = 19987029597767017004376
C43,43 = 77180849825857621779894
C44,44 = 298278470246442673742468
C45,45 = 1153638014306149018667804
C46,46 = 4465167928718123725683748
C47,47 = 17294692982395428197325698
C48,48 = 67031948061107616221175888
C49,49 = 259975635295723029619698462
C50,50 = 1008913445455643197454196752
C51,51 = 3917733871242592667026173068
C52,52 = 15221787001211054531500979600
C53,53 = 59174764703889164618206676204
C54,54 = 230164671217939285894223139260
C55,55 = 895701986637216879777989780716
C56,56 = 3487411115063908901866260835276
C57,57 = 13584695313095977284616609679496
C58,58 = 52941544457398413517617821633224
C59,59 = 206412709386903552066428869508702
C60,60 = 805124240336361022684649975839320
C61,61 = 3141737159280828281395073873175516
C62,62 = 12264544175902213632945566465084516
C63,63 = 47896305045725450051014807246701504
C64,64 = 187118328452563147406001655613479338
C65,65 = 731289429445851524196802561693359374
C66,66 = 2859012622466219342816755946470517692
C67,67 = 11181293294724202891853593863849795498
C68,68 = 43743424675943086140700457700553560860
C69,69 = 171188298374747233978078735929862066556
C70,70 = 670149783556000294320700577559450872160
C71,71 = 2624232637848729579423687985687638954770
C72,72 = 10279256933672126319404579222829020798448
C73,73 = 40276015157641958631845271128724971900364
C74,74 = 157853147792788845171060594557263653231440
C75,75 = 618840464911391931326572099152386291823104
C76,76 = 2426720313407726323501925201756929785860340
C77,77 = 9518604757734876603029131037459925487517988
C78,78 = 37345347726352975758433007779057692602732288
C79,79 = 146557003126716404786979162546577603678173282
C80,80 = 575282036335838987665389815903667485027196020
C81,81 = 2258690025302730120752998681453745771147057266
C82,82 = 8870161928635319983433031022997440650076884600
C83,83 = 34842006356346604550979496210314255180787694654
C84,84 = 136889186537789196621634589633868033667297397816
C85,85 = 537931873243032646433418544657288090883507218928
C86,86 = 2114342827903590999434758974932686243645679287308
C87,87 = 8312113249715848035299337681305368050292419274928
C88,88 = 32683864728027837380535231605201792794702931977668
C89,89 = 128540304760449840939077582416268248526905974620192
C90,90 = 505623603737957139753196288348070728783703168316696
C91,91 = 1989278711482024346474958948869385466479180849585904
C92,92 = 7827849334194270189472469608924898750105278321099700
C93,93 = 30808184915709672476545596648376274176215114106503736
C94,94 = 121273233107538912186420206281148882052882174797502276
C95,95 = 477460445293858462915000860861443164717758699641746572
C96,96 = 1880104118892591538540080429792822880257050840273231952
C97,97 = 7404521014952053571276567159651490776535410232928742268
C98,98 = 29166288004543542961411134490927144843505271876295283868
C99,99 = 114903449896075429122131081007923663614235389479909808004
C100,100 = 452742573280516405827020885387925276095250770610603745360