Add files via upload

This commit is contained in:
sanwu4617 2023-11-22 14:25:18 +08:00 committed by GitHub
parent bad3445ea5
commit 1baa4ad8e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 100205 additions and 0 deletions

100
Coeff_5.txt Normal file
View File

@ -0,0 +1,100 @@
69680576004574948426622480319902369407437068777880231739533284614632122755330
95976492818237273823317763178281203350633793046978471541315467832027876864686
1807872041832260718838664507467721076515619848918795240204396685783879322059
102023894481335883377374957565955414313193309710326759513976391957932477772395
91410361604814964249667261153022469639984926970432736388366497102824909313634
7377706360491356842696969562080391670145238704979595195596487346304698528603
57067120827848028565942929841853536693491519430124633007682785751227915930659
77469061795898044518519440152157344982836516336427455774619361133475671111724
27517316824692834118556409662519200963169743799523484024737466511159938954693
25309014898322106090125233057809351842152552049561424713810328872247483790407
51070543170857690542440253686836964658201353048554155311219523492633694244451
21056172162018079818997567700504452071611018711112838069892901986670607512588
114223090507111287561773446179644964634639496809513125896483869534516929587626
2764498884637318521903524063230577375343265998358711692694055413760965152715
10239995442695067007456555209094191105587920977414171038702868837791466513196
79192173842731512318190246654294113509759511403611986665678174639344678909326
28153399337004893310246228164130518071392758324307719790070036181959059959259
3881096851211273932324071434335109763033546090782512505031767527011836977671
95663647341017193266425166719906076792310268646599879419786012318888547455341
39095232256615609595108986821250513056064853438727028337319688327120705395188
50622565795416709726975772361350679190293118163288090933404746907954311696149
10107010149969467071218766376041131172614395839403526187673320032298786159883
74904411843506749126114150997278081790222648663134695904668753206278341670738
19476365724419528662560764446811393836660661549274354046947162036359569118039
46546413442745274205530039260217803774776594350923988066555870657336411012985
98228023843062844551658656025653789543450701185952767434676431306501262756269
37324582004033895367082730239782590455848423264351744581551185372433169845816
22354333064888227244544410685356313743054062705725989042636333938277368262705
10980620859746555637950175141169324657963947367813529041367294801032149089615
12004643898214549707730108657897191151813030860920061089852924033162921248184
99588869181662691649858017136292691172689980204986777368374169102519427061507
61459693123198189459353092359368979905739571328613696517154141582125326531522
51208708503359251636177331198585053263661518406572825585825435528194669852102
45330110755600399250949994819614227046906309482128635004355380492875050124242
14370468552271694884381366394224746355984141047827711628860749913324047459267
34935486900686188567898959360299871276363843478376223881142870215423569274176
30212801644194312176101428692739465002738091967047555797540922639165399214015
44551334636930825822870772187285696462008940700718341548316813577890741001230
79706221919341992037676630574913004118836477826971837409191236346295238410443
31697061894869251562093908934333276916397359645756040409633769425328191511904
57882309393805594005935611296673858390032232877642075338381216699859615324686
65949085361224023667802212096979286705158262879063883122006487618751745342839
49994878125062974824977287742080928228856880763821771144640131735643827526041
103097109127564929173500322564719643976393354175327643119031092937154562825668
114008603230895499238030120667734092121568299328511213947589648315901694483898
110361119333063238944920908609832123513665627960012527850362246707339304466240
46387780355828221852463154848860001252782177961326319913945663798557114093667
39200702894303932143784674664235512650843235294908723934272691450415452644772
78320242706309208089842320628701700562138638709309334450299987071269456886922
78283057744152723716092607018039441822776563461040091449261415407764434380066
34654511407545664736544173414787751038025620387591386470299692163123881812998
54940951687508713882451930358831951568583925413490932284281048519320995597462
39632776742157531585490152285360874385041579313509637704334462243218808930496
20204166846635315725193628894375355952358477369551734718072747855652651468130
56081494178553087880209804051686707678079846134990306958488491785453458867988
62333866037180285554795489206777455737119915707742566381798271438103500383843
113123404007696973422189581531666918011338046461840742867188139339715108211067
27912308606956173470660778687139620428195951073119686162376077593474991646508
33622088549094357874495146775960602942743285298068191858478510878575621987979
45130766964681589021966093430561534497355731536621605983831250978652571463172
58012888135386333990744436546421576710694206572673810536252108762086002595385
11236889290889292781164113152373034301030216127910555220823179881898586740672
90564416696526506121123582316779182076565332614440511667205495640808961646667
26552827071933857988994237996927273184472013061047054723542453872586443452679
64856046500918283340352057445228470804011657330146919585267798113854806795481
47898666676939469236061975387192900298811304652768657342521660727529426605991
14206393974841187520109998937834258819760655652340839711639839683017935698693
31908524379224524339833415742138621281387808063832565747018461411114259681712
18087990078935610463181021685230602700448695143787027262102271730087331927820
68921174253225699397751566791348619274993460976340867229469298302561969351728
15541980975540643481707434081413867761667894308218693546313114114228550103599
42970114168038507757848893321248986474216616522397982004003962284035926407244
59458277222572166615322777862407339411528232297679868679208000044125316807238
22574866556438005859045466130616513989426690085833393686455700113034224216240
1545568772133183676272140677955149893578106231181019939228636104558135123745
77923687450020309609235072909177629443559142787988470541938504898089038999592
17299240903312600307241931578556132266128889265857362133161254605304109952648
46267756113901471991668458881738154104007775694916401616056476675590154032513
15902480504537404534995022542457373408189220621579950310353378437734889038804
113102796394420766398358814944117921334125771869944921224289883744842078798380
39722576392297739843256679478063890120176800594123105434313174053376190016704
5608718333168901110483272785703504428835841900637146960814919518825998614459
67380805343002495661180280981766034891534989329127627659065256548264296696935
80494866344001400855699692862606810504762065623794207570628172330177765937631
80128882254737253903984947488445098549452370458483263699011534241507449534255
96364657120058490052209359329555026189421008847136289387228326143891914335625
83051816092976807225512278486235624081034618895913291281554180580600597503862
12321585326218663525448042436721331468560869232284861096791873553373835653197
6281518088287127393025437079597943551350959581515359171441517729340233071325
41524418597543813334710554064148716433502164964642179986363499511948381482301
88553937206170994024314916164167654211857151603933677956486356756876205242920
59769035474170028623288101875980370611127650757482785730090874838219259607058
2731789227905233459505734303386186615900125339104972983086892525975610992222
62037873590312298742399472030876026203446342905842330557689528130374724914697
78993948499211285046684114592187585718393325332924040982860664002851549924285
58230454631587765698433351117051977788554651497529592718578825748503433966030
108043987032538421104707629141944828095501993185739961677618578801479364500607
40984159117829091047408787702909164964517168717871272535374328124362789928417
39600220691345705442492373245818157305294741102872994291511297580158112323631
48804381172592964986492308673591562977420365248997974940329132733934287576845

121
Coeff_7.txt Normal file
View File

@ -0,0 +1,121 @@
509550243860311209606691775357929853896508068333
311491185399590323168280087264005041197554333959
1006670646370639640765720384789383529877519734433
934041028669145458486546562042207795564306987105
1102221761998800094575616018444637221747718201416
1271159173836982856026839875930981462284263333115
880379012623246840828885386636290244363613383188
767374367905157267873671567821084656263476338401
22388802437657167839934696336588740322803822594
774762585901240331998301602514668570580048212735
308867728209528666223361923231137580103184676170
973721133448396985310177549479143237660499987205
555690872291066065322720420533441210345098528718
533766740379067171682187537656145822442763055994
94956717253547385372372423684756902249286067320
265210822606452980563588555065779402534846940059
535592175110859035637192568004340746929692657148
442783965119922640200790141996586707391443378140
1418782683575605201782205641534786856243305746454
1135567646633338553863400512210729283227342635629
145003087972136639377294576843788710912818062401
825928644896183871755081531794915554865941570938
694595829870567704689869506532876459600656236578
99131634735572624551035733741699012033223266804
111143872853760382377886177106251955964507211041
518878039223288343620224570811653124647635192547
1068770320608612722978222870623442051000814997792
941431861562658077068448742788972806136410616087
452628951406091632036076328020946610506165623758
50234095447860517604192053668440657971837564877
409001750461055465533086094668713547086680303912
328476273716711689608073818170032542430387853221
48618803810689098703907235397904976490904461633
516791058347693808473861757159389903097854744378
786075396318474473051239140219648306848827898375
1309414349592036195924037141780191095651540275308
840760717290673895623278236400906739101313291601
1218635802407785208163606077055267104456378421386
423846430137510169602497904701869750534123608496
813362083999186924440495496222609900890594840705
250716305946183609381579480047789898361974479901
817411557534215714205857012548730674981542083969
611234019046672211537682904679237092765662390813
98422921626883211416137387786576356737236612801
612602665949917474558271129881817715384715047405
1307207657317652347530530684688035648649210497431
387059013717698202299299899665678884839329365442
1121578911820152222212774072027786030249366716160
275646328593972305285831110228129460129204996643
414544659138618701923443847752578001049266344098
614428828322869313921170228605345278980463167007
548962636968879140988755412192731170439793173439
1273451831412106994327772727952431551527468683994
245691775445518263724158281038824670919118278740
986387894894210211209989804484240980709825764309
1268100871833056178922413360070807079532656964364
1006310007780150727039567916056916511689299597696
268177344453129936857273371365778421158994655117
218191394446378558796797098104211817483878329738
853083960636858988388443614002319774730315515227
15872003863548806558580489186626342476152951419
1272047610753225785231003103563197769821084642854
992063505932939632805759189073035549638421697290
737502749795546808577409700851004495449084626659
1077831020615777349984059681873712644910276967822
389159780359013224495220513669594729291296590904
865972340010676504677050602239476125029077173139
855870708647847810248576167356836065070265129042
574107071388764309945280110148906365318546500149
1362014407634326425131689146989375699440967251383
1388940595144213482196396375427890274426602796522
1147908373531720187953926505668582821338159799295
713473485372555088602773468516353166827362283052
1358883196222948994794534969030087140042892628732
558976127795396206957128897258546211105307732385
1060722221823956781032913712035098400159584643926
202929092923905931634334471331496559684749445559
1094676207460103862922295467869767981836269499913
659659812587689381657953521294813851497803803021
1177644368447635484981139437925377401971277636029
604697505589233759995041239879413857438649708462
517355081752874169821419644840510151829406611264
1435395988422191535741875668727613136269518213558
1169071944629085199073085552554620274862951450436
622712905290679670387856694895397563771665205643
245135667104019551010153399504578486214388389570
1105547081084773417860630099449522275539771466601
1223574220291045104902643138479105522524827349512
128668718725625728543586709533520802862321629436
957523135469127241268215457034178739911867869256
1254610279904109072910252121524774878698661236264
1336590598339753460022203748753598920616132468154
688769550192120547367440433025262217309274507430
1133197360882661738139889728846160924375697537311
1235405029240725968999098701623645870124812906293
1421634654797792945599175813296085361523710455492
1140955097037977462194211863858981615521079565530
980840930778841419297372126288906709993770036251
6253846711815447518312478847923407166414482122
525431054236983395762962910262157895540949473364
1183791678348168341978245955664294434898664449795
3528311944145171562053105584583406272907804861
350603492691337790216522118700045012507029793922
983320701319629540395846917025170722256913622925
646720278075959191458275293974939777117297454764
337661720630696926806938633880637265174704270176
603803374769274059292665041631400333187031304214
849820783201771403142407817820688272926565778091
747145307140597200467690092220859671263305552790
340949058465979907397786266005919386280234786902
474033431652916385499115328224620034137726179001
570344903265641029248863434075560417192150435004
1448937405104837426569237920538059377663091557427
270756817598574169269815313042041913305103296996
1360218974555430100864252497387806616194394210895
359754788824242494995755128265816941119961897975
356247249998271481407473537455026565551172826114
67630663079601063827219884112733305755763239136
492062591354700185785630888054202971414870651423
880815358405008510949310880573610382583060370705

200
Coeff_8.txt Normal file
View File

@ -0,0 +1,200 @@
10212557602167500309185854334868176413922502074925818970769604281378
26027363727222509962469798159968085492247094790924005771698345846252
5825301032686182163657892484640356053807780806738590387789363392677
10769337318689949454184154340525394382349172292057465391837168577063
5770468174909220047818981032239705510431781193773425266041264048503
25778846639055336797317951539314921170628170590602504206175779323717
3230469327702735557182435220989483518085310430197801923000481682168
13650832580144695258821411365326190253468955914696903702548614287576
2653939528479446164801918849025283353317365895148835881735261899770
22347221246030065314963525048390308651527340072921247484998522504889
13326588566572640799087526650762952007154446226018692768751187464426
14746684372884525878262194772400660053857120901682147880581020484812
1026797404826610914120810619732561227865442741397086181536060533340
14281873125827143726921267445305542058067032635456197826347600455010
16944566957770182394735011526468786122967553261268670103073556444202
4673574037078655842594759007904282335646358458263575491026017305605
22481098460486383393835091158447978087345703659544036924310195866607
19279759212029176035942028574638426397119037594340856800408379848290
14986452920503869782962291842857356538698956918242775817629017634121
1466958165668703907957019741272077196140377312310251483965138463828
15887556856425263352379361530786976680366796566781918115252640308567
25096098170640474143850290861464783430964441612967170614729730263570
18532521559691692882060282321740840998190155685162585707581952949383
10001371323970361320467239174032890884650896022431261152124438058012
6929987635049537538845653770606325887874912750631170017588320577368
6960587618355234400268434644750718570500533552989413108171511108295
1896644487130914125221923905290829107496414673420616047952110526776
14673237896714366018870122556695766126978567325999739548361378772738
12035582276104431090227804716122807869580391941614445057078815510392
19175760423220393531070773590496834342366318051652814010609531770480
24296202452912987342769963015703098226833999761082518232077691871438
22938625462145113119034815800137095293663059196400722898647051951315
23354674497963861928221214795610710593522191263754150615078550854449
20189078912049210714901453745900774002161285895581799576517283756819
26418316957388592611867336762950679686945079254869221059024189110348
17868901215215364842909903105235603940988034831900095851321582544717
18434211848613388936626506092499716457655979521190843398381584408646
19094502121665971979788853745003531363742686881458379824784444843212
26949289156023890601685353746664062168406194079542492827591502423515
14190892644137247049604731730399669653875148773928474033422000293205
24838922933766080354091207616516335385650497550787556550183271119040
10465256749821477170566006225465946659827029667098075305806981197099
1137019027341917124391244371805893685169003121532249653295492666210
14940644206673174300172927357251705776492631332244193176167014894107
1208711748911333475297524054655756564742362063314309620836455951109
24598332754935481129274148765321318167295752112841348275935428186253
645928016689361808809434132124666070675926259986295564403156475598
16203382694652678759331708786127195783965650690061995287736059998582
19118859034560272171619692178884283388682751906689622946199353591301
15612072604187374655087005150070898893569914612208583985044143957630
5695960271146593992883621516162830723565881198603027781890538950093
26854684331339485964483366298909750739866869630886405713000922758641
5155364822629745936297371532245024697087202969601922717841488083810
1455757839221811139103972075376708906882265899039818976887917731895
16469866364946688686346525115594846100541975628741907320008398351564
25747217143261007534411229773545672516173863033588803809516057183930
458507936922343544491640272233803196111798170942418517708299321856
6766848663499330012078791640837925221802088280828063798821828173298
10712795563150893920860567325276772758324538482191066917884900508627
26265579908944352774262776402901850171281792854897926112223029376096
3593941306331133298546563173644790043350573217193526012246412382605
21473428554936347256900626989545640475011416980536665058125668507137
22651328833026454272759864227101868093607137168483435152015633633519
16489220227515171897883374128299847581420318173111521886378754846290
7405125539282250193473828336482950375702599912018140114537955775976
162631770535308264872441546796534367281108044276245078068398450770
7551999303118318201744410548173966016388331326004490688138306256654
20958917389158789120093828943116415795207770297475854874632053251491
1634508526353851391247225288924631925910087555648379183173442989248
11161788489835467465717147139842233536971155918316618955708323667066
16007955680915936126323615710185043264049167150294756466225139532877
12542559089280375530236155184574714695330976059125941031189520449457
6400133249767231436590559787500021333624040146227485573386461992366
5736416856880430660998775921764646086801794303381034425732917860044
2560834450373009339578634328097687176435998530242274953232404900790
24550427900519757590933010331085959948588850304797921174950105343102
8354952797288672184723904674675890296406415026693064949012620691687
15244925898450810797520218550046900278344923551864349661861617981615
1208347741699182515253753389375428981861573481400963869899223691614
26297315265965067686337283972542171847713466039958830288027948675567
10360174910726832337306877090172731245326697221759627667323522436690
8922564096398457746516769966128416431391874473929923553763931647019
7614407058916795634138825203041305680779889809067259960237268203626
18342514104010454233914544537645401682109945059504330512544419938310
8304596454043483783622298744337214760239541418892921911371673116070
19703030853306899266457343517626065817983316900296214544499628745595
8215662815094512304117742581947431004780118942056199187360727829048
13775680738620257856741395836429792398843506691220870553410616671070
19772648963589365147679915614791645419525719474892396108820451703675
6925567172276671433665948713704473072099123416358916392290541924158
6168153745829238731600367667943262700494261706085778304002707896657
20871733524119169538680853915733520804049569179682302473560969378655
25756815330022375473405032867578896902005811706977647893107935128350
22381102083244643491558324632214828264646233499177975332123017822066
8721941230049268705981628463681010233424154793423139510772388457698
9755746220682382437315236154509268548875532294773137168630713776092
2638848349745779603958125204185399798158442624542247271524525002820
3806136237213536555898727989734257793867076839744678234772635549855
20610448566749668069170368267980224658747103846483967580000658511502
21000323567654592840134328564979360161072930386913199715558439124298
25190358929765144364652627012482050819142717262891035874215790642018
17620621432682274889783975202425295852576246846229334720718218288788
8756504473929192618397049258219940594402300882636931066255423516517
3469299716851328778199562722701099410143226376275935570101543381824
6558643173835209836471866914700023747678133474593204217826271410673
2554047208013793582600229471652999160553940859068406094493311098246
799972761679838716065239440184335945360985602126370308206771895016
18427108265278600659170528518449790107599603167150795200651904282755
5613010388846854831846250987476963174454353422601356344011619752846
15721139545327688706562351746961527824058618976238968147606487284817
6290548590968673571355163471444732028936158584104027497108324452245
13944456443010368780040702081955614563494525650002559898304000101927
11426584246190472936473052265771118454649747035014581539889807702741
12525056597529429264130021896154718699909626525789866950834196322594
2600958206744893349950811175741142114062083773979550814646657599143
26495350161623748969930039936454779823587240837126123194749621163599
20332597741714651244848580032191104272492312398058687487321888982414
12154943122028618012914141743433261108583577869556575680291326289707
25112298248459170444850891454068934128642525590568697545900601299585
20083266621758177930812950384459455220225075814141193578388840724092
2359523750134194580687970703592462056433499522930173161920294808729
18322353514852631670531386066779506450532320160401047234143641954638
18512416104460863820070045700791364036401462673177659716260104503186
22932844398434647734526205349677199169521185140946859680625673646170
12799443781726226402676405015809333590293288887552108952815597310452
21330695103398821317492760598364635155944869143105373101109161590275
6028139705835598004837333211151034197857279627845112223051708833988
20119334531858382909437591146067942773203363445867117674036645123888
5870941162521702510177014977159503206819476187663592885217960820063
10970740226395060550983928963306854078323916083798368101916407994754
95449808878044991971951213474346070445454002904507429203873776525
15246739287969449492138403386996864813005001026652961078347035491334
16463630750518465281835990057444322513301177644295129342896731553085
18644838648963819177484798484759041945070283233867251725780886055362
20902103931437088592002928535145585402463386550924625804183571545748
19681996185822849960983822169871572933773539661044498543966174680780
1254286016008081353946594070145275111437998442090922662518498016351
22128065962062908590541179971076634965886402817522722336943828276507
15286783049391339137292532819630301191395802195038759374042743422544
14641076680273923422456446834172592174657399802336853811654561492410
21794803754828450600633231898852931556362452106102366399077121315107
17281846750473012894120067448517367418307110371529831142555182098274
292883505982044632949200590379060507108579113722559916450176163583
20994827765954055193094307474653415772686712080272014018608080252350
18669862087678784993567451514038851753660617187018361850746302726173
4013797051409013617736085324691673087478966279623456822642233984585
17948837711548155514769790085095474639524519663181424324218999178684
11852345386642888766799950058665519853765398244391836879979147089458
20034308675274413924876175633493110126348949723745012845523751836713
19478750138995181730640724467298298564229010093714066295350871629791
14999522969644404933156638425384839013701730996742067519215015850870
14910304417768425105244004541160140168894498669423585174571904010050
26085640771044236246708874218001190356539875248403900540791443925206
5175074826658810245275153157845172040980070022946969943873146703789
9974155942353533745633351204191524775449316343687913940952560086522
14590900658840896065944247894045302856862793919252467547748067915114
6632073284956211886707263812593887948906713950578293293601577173591
10921185194677559106453417429377211989780587621046463892535777598860
9688340077788003533632691817682048565395611955716195663474095800555
17998337496565263621166010032424814641588925443463180847427153777143
8529336201792469417743425961938129027859431067775240084283969116340
7223879170643188133650533943780630369071292558875537672594728981652
2311083504435620772262911081465816965050269541712886526549864154568
428776148030075760743158194052069917363786361702528316062567805853
5027086236921067007297362410858038789841679387656291522852539562647
20134306125327399393977205976388691753811744857601573092757019163309
17189596104171270770991950021980248826895143664122318802933047388897
26853725432990695629076696399894730557974344812717538882388842321908
4143139186275754339255279203157290985814546022219180881783968500476
7110721591182735772907282881274979607372551350493414576108669347864
11544340489244593733437118960436481380364725533167404792236942422895
23485628489283430248465690450245419670518094708276291042207237235956
18901245995220926648298435682259726638237373688486942221144812175717
26394764013103644304862185882598013565916671928289767248149047484142
20064863894081920609827187569982833035333038409664454139494877539443
8009092611669256057916841947542509443443889392382897323030833782269
2378860215089178151374048005760953771316132328046039588720710776548
12862270304904809812203006762189979837538816186354251932866186473352
5676569244693496299914856303576829142462205659748994427560835629172
7279528300460652163538256799896146814021201359865314774422317644437
15330351551463819229584416482197053337276099710882490485674223259219
25566417650341193393801389848493139079182366742590226435827782855782
24864508981600788816000610521748649559473169371546574210148971911611
19547951360491930487643573354734306548587763765710808428464845447362
15728497564757764246579899525607831998786804340687916850491481298670
2085424221085585940999623511839288426069074506337754251373764818429
16361399269215021711234928771583205747345571585834433476209928257043
15386441614730360045947950593973541390371854371028910268628896527900
24891192173725316637402466046827211439712038469912490008040219718381
23575671946512715323701548191601392420176589191223125080880939569669
2508076151964142180997144581412258684195562230690219705469164245707
12123341329288604597311172390687414278650749844615399497666044842726
21115936538925835202664722066866398070369416690394049154482044413581
2634718161100125780350452678395935968747090691811721836562326238014
15736676244062120770267645236890913283688584284344241274754515621551
9915217925923537705431941555832898321172575728177272570258352851711
23820966775267630917912598349822740004222325003603293980804205302902
15926722961523294997932101023347089830986283581423487464381960857867
10509879100818124826848612253902358214290970117554748598743897838944
18182482916787108515494621220411867142958759839205056830975015693624

100
Known_5.txt Normal file
View File

@ -0,0 +1,100 @@
4
0
11
11
2
9
6
3
9
6
11
0
11
15
12
6
1
15
9
11
13
5
7
9
3
11
5
14
1
7
13
14
4
15
0
6
11
0
12
2
11
14
7
14
12
12
5
3
1
12
3
0
13
3
10
11
12
5
14
7
0
12
15
13
12
13
8
11
11
13
12
15
12
6
9
14
13
4
2
11
12
14
11
2
12
5
10
4
15
15
4
15
0
13
12
13
10
7
10
12

121
Known_7.txt Normal file
View File

@ -0,0 +1,121 @@
2
3
0
2
3
1
3
3
0
2
1
3
0
2
3
2
2
0
0
3
2
1
1
1
2
1
2
2
1
0
1
1
0
3
3
1
2
3
1
1
3
1
1
2
3
1
3
2
1
2
2
1
3
3
2
0
3
0
1
3
0
3
3
3
0
3
0
1
2
2
0
0
0
0
1
3
1
0
0
2
1
3
3
3
1
3
0
2
0
2
1
2
0
2
0
3
1
1
2
0
1
0
3
2
1
1
2
0
1
1
1
1
3
2
0
2
1
3
0
0

200
Known_8.txt Normal file
View File

@ -0,0 +1,200 @@
3
0
2
1
1
2
2
2
3
1
1
0
1
0
3
1
1
1
0
3
1
2
0
0
2
2
1
0
2
3
3
1
2
1
0
2
1
1
3
3
3
3
1
2
0
2
1
1
0
2
0
3
2
1
1
1
0
2
3
1
0
1
3
2
0
0
3
3
0
1
1
0
3
1
1
3
3
2
0
3
2
0
0
3
2
1
2
0
2
0
3
2
0
3
1
1
2
2
3
0
3
3
3
3
0
0
1
2
3
3
1
3
3
0
2
1
1
3
1
3
1
1
3
2
2
0
0
1
2
2
2
0
2
3
0
2
1
2
2
1
2
3
2
3
2
0
3
0
3
2
0
2
1
3
3
3
2
0
0
2
3
3
0
1
0
3
0
1
2
3
2
0
3
2
2
3
0
3
3
3
3
3
1
2
3
2
0
1
1
0
3
3
0
3
1
0
2
1
3
2

2
Makefile Normal file
View File

@ -0,0 +1,2 @@
HNP:
g++ *.cpp -Wall -O3 -o test -I /home/zfsn4617/ntl-10.5.0/include -L /home/zfsn4617/ntl-10.5.0/lib -lntl -Wl,-rpath=/home/zfsn4617/ntl-10.5.0/lib -I /home/zfsn4617/gmp-6.1.2/include -I /home/zfsn4617/mpfr-4.0.1/include -I /home/zfsn4617/fplll-5.2.1/include -I /home/zfsn4617/qd-2.3.23/include -L /home/zfsn4617/gmp-6.1.2/lib -lgmp -L /home/zfsn4617/mpfr-4.0.1/lib -lmpfr -L /home/zfsn4617/fplll-5.2.1/lib -lfplll -Wl,-rpath=/home/zfsn4617/gmp-6.1.2/lib -Wl,-rpath=/home/zfsn4617/mpfr-4.0.1/lib -Wl,-rpath=/home/zfsn4617/fplll-5.2.1/lib

18
NTL_data.cpp Normal file
View File

@ -0,0 +1,18 @@
#include "NTL_head.h"
ZZ ZZ_pow2[1024];
RR RR_pow2[1024];
double d_pow2[1024];
void NTL_init()
{
ZZ_pow2[0] = to_ZZ("1");
for (int i = 1; i < 1024; i++)
{
ZZ_pow2[i] = 2 * ZZ_pow2[i - 1];
RR_pow2[i] = MakeRR(ZZ_pow2[i],0);
}
d_pow2[0] = 1;
for (int i = 1; i < 1024; i++)
{
d_pow2[i] = 2 * d_pow2[i - 1];
}
}

20
NTL_head.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef NTL_HEAD_H
#define NTL_HEAD_H
#include <NTL/matrix.h>
#include <NTL/mat_ZZ.h>
#include <NTL/mat_RR.h>
#include <NTL/LLL.h>
#include <fstream>
#include <time.h>
NTL_CLIENT
using namespace std;
using namespace NTL;
extern ZZ ZZ_pow2[1024];
extern double d_pow2[1024];
extern RR RR_pow2[1024];
void NTL_init();
#endif

97680
default.json Normal file

File diff suppressed because it is too large Load Diff

13
gmp_data.cpp Normal file
View File

@ -0,0 +1,13 @@
#include "gmp_head.h"
mpz_t mpz_pow2[1024];
void gmp_init()
{
mpz_init_set_str(mpz_pow2[0],"1",10);
mpz_init_set_str(mpz_pow2[1],"2",10);
for(int i=2;i<1024;i++)
{
mpz_init(mpz_pow2[i]);
mpz_mul(mpz_pow2[i],mpz_pow2[i-1],mpz_pow2[1]);
}
}

17
gmp_head.h Normal file
View File

@ -0,0 +1,17 @@
#ifndef GMP_HEAD_H
#define GMP_HEAD_H
#include <fplll.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <chrono>
using namespace std;
using namespace fplll;
using namespace std::chrono;
extern mpz_t mpz_pow2[1024];
void gmp_init();
#endif

100
log.txt Normal file
View File

@ -0,0 +1,100 @@
2100 3.176 0.07 3.246 0.3326821189
2000 4.169 0.013 4.182 0.3298125148
4700 4.257 0.009 4.266 0.3315916028
3300 5.307 0.077 5.384 0.3341636089
500 6.417 0.8 7.217 0.3301958504
1600 7.25 0.114 7.364 0.3373552981
3800 7.072 0.561 7.633 0.335475214
1400 7.328 0.354 7.682 0.3243593589
4000 7.59 0.669 8.259 0.330942348
100 7.176 1.452 8.628 0.3292094215
900 6.971 1.696 8.667 0.3328045345
1900 7.811 0.999 8.81 0.3305171366
700 5.906 2.954 8.86 0.3341984882
200 8.77 0.123 8.893 0.3354906302
3400 7.439 1.735 9.174 0.3296698729
4500 7.09 2.166 9.256 0.3318846629
5000 9.403 0.031 9.434 0.3271317059
1700 9.992 0.078 10.07 0.330576022
1200 7.341 2.869 10.21 0.3347629144
4100 10.586 0.06 10.646 0.3355769032
2300 10.677 0.003 10.68 0.3319929738
4300 11.106 0.004 11.11 0.3391058441
1000 11.514 0.023 11.537 0.3459635549
4200 12.033 0.073 12.106 0.3312745643
3301 8.055 0.239 8.294 0.332009573
3700 11.478 2.573 14.051 0.3351315999
4701 10.942 0.179 11.121 0.3358647649
201 6.967 0.068 7.035 0.3393081675
5001 6.876 0.103 6.979 0.3356734931
3100 10.513 6.527 17.04 0.3312355945
1201 5.019 1.792 6.811 0.3351358788
4001 8.637 1.587 10.224 0.3394486049
1401 9.562 1.532 11.094 0.3302708606
1601 11.622 0.001 11.623 0.336565276
701 11.574 0.048 11.622 0.340491997
2200 14.098 7.582 21.68 0.3340669303
1901 11.291 2.296 13.587 0.3391673585
2101 9.307 10.179 19.486 0.3398972131
400 21.878 2.77 24.648 0.3405645901
3701 10.543 0.003 10.546 0.3370932467
3600 9.888 16.372 26.26 0.3387891093
1001 15.006 0.116 15.122 0.3451471056
4101 16.586 1.644 18.23 0.3330976289
401 7.39 1.061 8.451 0.3309073612
2400 4.869 31.127 35.996 0.3314550984
2600 21.915 14.52 36.435 0.3400119377
3601 9.997 0.049 10.046 0.329396941
3401 14.383 15.222 29.605 0.3350018321
501 8.077 25.508 33.585 0.3401498788
3500 4.512 / / 0.3336934374
2800 4.532 / / 0.3250035017
600 6.655 35.748 42.403 0.3376271563
1800 5.112 / / 0.3359571726
3900 4.783 / / 0.3328928611
300 4.464 / / 0.3291825191
800 5.365 / / 0.3355543916
4900 5.99 / / 0.3333780068
4501 10.828 24.826 35.654 0.332146037
2900 8.016 / / 0.3364109463
4600 8.328 / / 0.3347243605
1500 10.758 / / 0.3382132615
2401 7.314 3.853 11.167 0.3349718455
3200 11.274 / / 0.3317169288
1300 11.18 / / 0.337095086
2601 10.151 1.156 11.307 0.3367918366
2001 5.531 / / 0.3286457532
4800 9.948 / / 0.3332376387
2700 11.564 / / 0.3370585233
4400 12.073 / / 0.3400270814
3801 4.685 / / 0.3237177018
4901 5.825 0.003 5.828 0.3276651868
1100 14.854 / / 0.3369352742
3501 9.759 0.248 10.007 0.3357428848
101 7.587 / / 0.3363667797
4201 3.116 / / 0.3275686977
801 9.421 0.035 9.456 0.3301742106
2901 7.922 0.004 7.926 0.3316490304
901 12.095 32.944 45.039 0.3383908773
2500 19.901 / / 0.3360809646
3000 19.867 / / 0.342040179
3901 8.363 5.161 13.524 0.3346342616
4801 8.661 0.02 8.681 0.3376581237
1501 9.72 0.065 9.785 0.3357863527
1801 6.506 8.217 14.723 0.3338051418
2301 9.339 / / 0.3359474685
1701 12.354 / / 0.336007149
4301 22.093 24.929 47.022 0.3365553954
1301 11.18 0.005 11.185 0.3305111047
4401 10.604 0 10.604 0.3356825441
3201 6.114 6.056 12.17 0.3352862522
3101 10.962 / / 0.3321474921
3001 7.451 0.04 7.491 0.3338670602
1101 12.511 0.198 12.709 0.3405982517
2501 9.152 0.206 9.358 0.3338472364
2201 12.248 / / 0.3300895824
4601 8.892 15.625 24.517 0.3345783672
2801 5.93 30.894 36.824 0.3377505451
301 7.622 / / 0.330869708
601 13.079 / / 0.3369007181
2701 8.116 / / 0.3298171727

489
main.cpp Normal file
View File

@ -0,0 +1,489 @@
#include "NTL_head.h"
#include "gmp_head.h"
#include <algorithm>
#include <sys/types.h>
#include <unistd.h>
#define DIM 125
#define EQU 200
#define LEN 256
#define BITS 224
#define UNKNOWN 222
#define COEFF "Coeff_8.txt"
#define KNOWN "Known_8.txt"
#define BKZ_BLOCK_SIZE 70
#define BKZ_SET_MAX_TIME 12000
#define TEST_TIMES 1000000000
#define PRINT_HIDE 0
#define PRINT_HADAMARD 1
#define PARALLEL_TIMES 8
#define PROCEEDS 47
double noise[DIM + 1];
int computed = 0;
double noise_times = 0.2;
struct TestData {
int data_id;
double reduce_time;
int success_times;
int all_times;
double average_nv_time;
RR hadamard;
};
ostream& operator << (ostream& out, TestData& td)
{
out << td.data_id << '\t' << td.reduce_time << '\t';
/*
if (td.success_times == 0)
out << "<1";
else
out << td.success_times;
out << '/' << td.all_times << '\t';
*/
if (td.average_nv_time > 1.0e+30)
{
out << "/\t/";
}
else
out << td.average_nv_time << '\t' << td.reduce_time + td.average_nv_time;
if(PRINT_HADAMARD)
out << '\t' << td.hadamard;
out << endl;
return out;
}
double gaussrand()
{
static double V1, V2, S;
static int phase = 0;
double X;
if (phase == 0) {
do {
double U1 = (double)rand() / RAND_MAX;
double U2 = (double)rand() / RAND_MAX;
V1 = 2 * U1 - 1;
V2 = 2 * U2 - 1;
S = V1 * V1 + V2 * V2;
} while (S >= 1 || S == 0);
X = V1 * sqrt(-2 * log(S) / S);
}
else
X = V2 * sqrt(-2 * log(S) / S);
phase = 1 - phase;
return X;
}
inline double Mult(double a[DIM], double b[DIM])
{
double ret = 0;
for (int i = 0; i < DIM; i++)
{
ret += a[i] * b[i];
}
return ret;
}
inline void NumMult(double ret[DIM], double a[DIM], int n)
{
for (int i = 0; i < DIM; i++)
{
ret[i] = a[i] * n;
}
}
inline void AddEq(double ret[DIM], double a[DIM])
{
for (int i = 0; i < DIM; i++)
{
ret[i] += a[i];
}
}
inline void SubEq(double ret[DIM], double a[DIM])
{
for (int i = 0; i < DIM; i++)
{
ret[i] -= a[i];
}
}
int RoundToInt(double d)
{
if (d > 0)
return int(d + 0.5);
else
return int(d - 0.5);
}
//使用全局变量存储大型数组
double d_m[DIM][DIM] = { 0 };
double d_basis[DIM][DIM] = { 0 };
double d_save[DIM] = { 0 };
void NearVectorCoef(int d_coef[DIM], double d_v[DIM])
{
//求解向量线性表示的整系数
double mid_temp[DIM] = { 0 };
double d_v_in[DIM];
double d_v_out[DIM] = { 0 };
memcpy(d_v_in, d_v, sizeof(d_v_in));
for (int i = DIM - 1; i >= 0; i--)
{
int temp = RoundToInt(Mult(d_basis[i], d_v_in) / d_save[i]);
d_coef[i] = temp;
NumMult(mid_temp, d_m[i], temp);
SubEq(d_v_in, mid_temp);
AddEq(d_v_out, mid_temp);
}
for (int i = 0; i < DIM; i++)
{
noise[i] *= computed;
computed++;
noise[i] += (d_v_out[i] - d_v[i]) * noise_times;
noise[i] /= computed;
}
}
inline ZZ GetHide(int d_coef[DIM], mat_ZZ& m)
{
ZZ d_prob_hide;
for (int i = 1; i <= DIM; i++)
{
d_prob_hide += d_coef[i - 1] * m(i, DIM);
}
//cout << d_prob_hide << endl;
return d_prob_hide;
}
inline ZZ GetHide(mat_ZZ& m, double d_v[DIM])
{
int d_coef[DIM];
NearVectorCoef(d_coef, d_v);
return GetHide(d_coef, m);
}
void getRandList(int* list, int max_term, int choose)
{
pair<int, int>* temp_list = new pair<int, int>[max_term];
for (int i = 0; i < max_term; i++)
{
temp_list[i].first = rand();
temp_list[i].second = i;
}
sort(temp_list, temp_list + max_term);
for (int i = 0; i < choose; i++)
{
list[i] = temp_list[i].second;
}
delete[] temp_list;
}
void toString3(char* s, int n)
{
s[0] = n % 1000 / 100 + '0';
s[1] = n % 100 / 10 + '0';
s[2] = n % 10 + '0';
}
char char_alpha[EQU][LEN] = { 0 };
char char_beta[EQU][LEN] = { 0 };
TestData td;
void lattice_reduction(int choose[DIM - 1], char* basis_name, int get_pid = 0)
{
mpz_t alpha[DIM];
for (int i = 0; i < DIM - 1; i++)
{
mpz_init_set_str(alpha[i], char_alpha[choose[i]], 10);
}
//set matrix
ZZ_mat<mpz_t> A;
mpz_t alpha_temp[DIM];
for (int i = 0; i < DIM - 1; i++)
{
mpz_init(alpha_temp[i]);
mpz_mul(alpha_temp[i], alpha[i], mpz_pow2[BITS]);
}
A.resize(DIM, DIM);
for (int i = 0; i < DIM - 1; i++)
{
A[i][i] = mpz_pow2[BITS * 2];
A[DIM - 1][i] = alpha_temp[i];
}
A[DIM - 1][DIM - 1] = mpz_pow2[0];
vector<Strategy> strategies = load_strategies_json("default.json");
double used_time=0;
for(int i=3;i<=BKZ_BLOCK_SIZE;i++)
{
BKZParam b(i, strategies, 1 - (1e-10), BKZ_MAX_TIME, 0, BKZ_SET_MAX_TIME);
auto start = high_resolution_clock::now();
bkz_reduction(&A, NULL, b);
auto end = high_resolution_clock::now();
used_time += duration_cast<milliseconds>(end - start).count() / 1000.0;
}
td.reduce_time = used_time;
FILE* fout;
fout = fopen(basis_name, "w");
for (int i = 0; i < DIM; i++)
{
for (int j = 0; j < DIM; j++)
{
gmp_fprintf(fout, "%Zd\n", A[i][j]);
}
}
fclose(fout);
}
void solve_hnp(int choose[DIM - 1], char* basis_name, int get_pid = 0)
{
mat_ZZ m;
vec_ZZ v;
vec_ZZ ret;
vec_ZZ Coeff;
vec_ZZ Known;
m.SetDims(DIM, DIM);
v.SetLength(DIM);
Coeff.SetLength(DIM);
Known.SetLength(DIM);
ifstream fin_basis(basis_name);
for (int i = 1; i <= DIM; i++)
{
for (int j = 1; j <= DIM; j++)
{
fin_basis >> m(i, j);
}
}
for (int i = 1; i <= DIM - 1; i++)
{
Coeff(i) = to_ZZ(char_alpha[choose[i - 1]]);
Known(i) = to_ZZ(char_beta[choose[i - 1]]);
v(i) = Known(i);
v(i) *= ZZ_pow2[UNKNOWN] * ZZ_pow2[BITS];
v(i) += ZZ_pow2[UNKNOWN - 1] * ZZ_pow2[BITS];
}
//LLL_RR(m);
v(DIM) = 1;
fin_basis.close();
//计算Hadamard比率
ZZ mo[DIM];
for (int i = 1; i <= DIM; i++)
{
for (int j = 1; j <= DIM; j++)
{
mo[i - 1] += m(i, j) * m(i, j);
}
RR mid = MakeRR(mo[i - 1], 0);
mid = sqrt(mid);
mo[i - 1] = RoundToZZ(mid);
}
ZZ temp12 = to_ZZ("1");
ZZ temp13 = to_ZZ("1");
for (int i = 0; i < DIM - 1; i++)
temp12 *= ZZ_pow2[BITS] * ZZ_pow2[BITS];
for (int i = 0; i < DIM; i++)
{
temp13 *= mo[i];
}
RR temp22, temp23;
temp22 = MakeRR(temp12, 0);
temp23 = MakeRR(temp13, 0);
RR temp24 = MakeRR(to_ZZ("1"), 0) / MakeRR(ZZ(DIM), 0);
td.hadamard = pow(temp22 / temp23, temp24);
//计算Gram-Schmidt正交基
mat_RR m_RR;
vec_RR v_RR;
mat_RR basis;
mat_RR mu;
m_RR.SetDims(DIM, DIM);
v_RR.SetLength(DIM);
basis.SetDims(DIM, DIM);
mu.SetDims(DIM, DIM);
for (int i = 1; i <= DIM; i++)
{
for (int j = 1; j <= DIM; j++)
{
basis(i, j) = MakeRR(m(i, j), 0);
m_RR(i, j) = MakeRR(m(i, j), 0);
}
v_RR(i) = MakeRR(v(i), 0);
}
for (int i = 2; i <= DIM; i++)
{
for (int j = 1; j <= i; j++)
{
mu(i, j) = (m_RR(i) * basis(j)) / (basis(j) * basis(j));
}
for (int j = 1; j <= i - 1; j++)
{
basis(i) -= mu(i, j) * basis(j);
}
}
//求解向量线性表示方式的整系<E695B4>?
RR save[DIM + 1];
ZZ save_coef[DIM + 1];
for (int i = 1; i <= DIM; i++)
{
save[i] = basis(i) * basis(i);
}
//使用double类型求解可能的隐藏数
//将基和目标向量转换为double类型
double d_v[DIM] = { 0 };
for (int i = 1; i <= DIM; i++)
{
for (int j = 1; j <= DIM; j++)
{
RR temp1 = MakeRR(m(i, j), 0) / RR_pow2[BITS];
RR temp2 = basis(i, j) / RR_pow2[BITS];
conv(d_m[i - 1][j - 1], temp1);
conv(d_basis[i - 1][j - 1], temp2);
}
ZZ temp3 = v(i) / ZZ_pow2[BITS];
conv(d_v[i - 1], temp3);
}
//将预计算结果转化为double类型
for (int i = 1; i <= DIM; i++)
{
RR temp = save[i] / RR_pow2[2 * BITS];
conv(d_save[i - 1], temp);
}
//读取正态分布数据
const int NPD = 1024; //正态分布数据量
double norm_ppf[NPD] = { 0 };
ifstream fin_np("norm_ppf_1024.txt");
for (int i = 0; i < NPD; i++)
{
fin_np >> norm_ppf[i];
norm_ppf[i] *= d_pow2[UNKNOWN - 1] / 4;
}
fin_np.close();
auto start = high_resolution_clock::now();
//ofstream fout2("r.txt");
int count_get_hide = 0;
//int last_get_hide=0;
for (int z = 0; z < TEST_TIMES; z++)
{
double d_v_temp[DIM] = { 0 };
memcpy(d_v_temp, d_v, sizeof(d_v_temp));
for (int i = 0; i < DIM - 1; i++)
{
d_v_temp[i] += norm_ppf[rand() % NPD];
d_v_temp[i]+=noise[i];
}
//d_v_temp[0] -= d_pow2_445 / 10;
ZZ hide = GetHide(m, d_v_temp);
//检测隐藏数是否正确
bool get_hide = true;
for (int i = 1; i <= DIM - 1; i++)
{
if ((hide * Coeff(i)) % ZZ_pow2[BITS] / ZZ_pow2[UNKNOWN] != Known(i))
{
get_hide = false;
break;
}
}
if (get_hide)
{
//cout << z << '\t' << count_get_hide<<'\t'<<hide % ZZ_pow2[BITS] << endl;
count_get_hide++;
//last_get_hide=z+1;
if (count_get_hide == 1)
{
td.success_times = count_get_hide;
td.all_times = z + 1;
//cout << count_get_hide<<'/'<< z+1 << '\t';
break;
}
if (PRINT_HIDE)
cout << endl << hide % ZZ_pow2[BITS] << endl;
}
//fout2 << hide << endl;
//if (z % 50000 == 0)
// cout << z << endl;
if (z == TEST_TIMES - 1)
{
if (count_get_hide != 0)
{
td.success_times = count_get_hide;
td.all_times = TEST_TIMES;
}
else
{
td.success_times = 0;
td.all_times = TEST_TIMES;
}
}
}
//fout2.close();
auto end = high_resolution_clock::now();
if (count_get_hide > 0)
td.average_nv_time = duration_cast<milliseconds>(end - start).count() / 1000.0;
else
td.average_nv_time = 1.0e+32;
}
int main()
{
srand((unsigned)time(NULL));
int process_i;
for (process_i = 0; process_i < PROCEEDS; process_i++) {
int pid = fork();
if (pid == -1) {
perror("fork error");
exit(1);
}
else if (pid == 0) {
break;
}
}
for (int i = 0; i < getpid() * 11 % 2048; i++)
{
rand();
}
ifstream fin1(COEFF);
ifstream fin2(KNOWN);
for (int i = 0; i < EQU; i++)
{
fin1 >> char_alpha[i];
fin2 >> char_beta[i];
}
fin1.close();
fin2.close();
//初始<E5889D>?
gmp_init();
NTL_init();
char basis_name[] = { "log/log_000_basis.txt" };
char coeff_name[] = { "log/log_000_coeff.txt" };
char known_name[] = { "log/log_000_known.txt" };
toString3(basis_name + 8, getpid());
toString3(coeff_name + 8, getpid());
toString3(known_name + 8, getpid());
ofstream fout1(coeff_name);
ofstream fout2(known_name);
//随机选择方程
//cout<<"数据格式:\n序号\t\t约化时间\t成功率\t\t最近向量平均求解时<E8A7A3>?<<endl;
int begin_id = getpid() % 1000 * 100;
for (int i = begin_id; i < begin_id + PARALLEL_TIMES; i++)
{
int choose[DIM - 1] = { 0 };
getRandList(choose, EQU, DIM - 1);
td.data_id = i;
//<2F><><EFBFBD><EFBFBD>м<EFBFBD><D0BC>ļ<EFBFBD>
for (int j = 0; j < DIM - 1; j++)
{
fout1 << char_alpha[choose[j]] << endl;
fout2 << char_beta[choose[j]] << endl;
}
//<2F><><EFBFBD>Լ<EFBFBD><D4BC>
lattice_reduction(choose, basis_name);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
solve_hnp(choose, basis_name, i);
cout << td;
}
fout1.close();
fout2.close();
}

1024
norm_ppf_1024.txt Normal file

File diff suppressed because it is too large Load Diff