import matplotlib.pyplot as plt import matplotlib.font_manager as fm from collections import Counter plt.rcParams["font.sans-serif"] = ["Microsoft YaHei"] # fm._load_fontmanager(try_read_cache=False) plt.rcParams["axes.unicode_minus"] = False ids = [ 6917559067092904725, 6917559133889396578, 6917559134045802769, 6917559138770331354, 6917559303873561126, 6917559384755888642, 6917559398244134093, 6917559401760179700, 6917559412599401190, 6917559420741644814, 6917559471584581139, 6917559493442858602, 6917559997337903225, 6917560000979877756, 6917560003449022390, 6917560016672900552, 6917560022799490908, 6917560032190348725, 6917560035472143514, 6917560097545123074, 6917560114894371183, 6917560116974261759, 6917560117815577197, 6917560205485137936, 6917560219685269679, 6917560357923094834, 6917560359557165039, 6917560360240524900, 6917560360709703524, 6917560367071284350, 6917560369767958844, 6917560371028950738, 6917560376650687643, 6917560377845767304, 6917560379007636106, 6917560381488384466, 6917560393396693554, 6917560460010884000, 6917560575682608482, 6917560627823550829, 6917560704310608396, 6917560709064556659, 6917560710101080351, 6917560737288133186, 6917560746533032980, 6917560816735994213, 6917560821003140355, 6917560825146198131, 6917560886804598306, 6917560887149340958, 6917560893620646027, 6917560993344198571, 6917561085175127541, 6917561518769085516, 6917561528753048064, 6917561531299586643, 6917561531516369629, 6917561876875467950, 6917561964332820229, 6917561975170776755, 6917562040228930950, 6917562054572335088, 6917562055503460269, 6917562062336371751, 6917562075088579386, 6917562075336537411, 6917562117895025847, 6917562146058315651, 6917562225022681009, 6917562236242776348, 6917562410160572883, 6917562416591618661, 6917562428991776541, 6917562482635766975, 6917562486213978168, 6917562688923896242, 6917562745019942088, 6917562776558909659, 6917562852705310360, 6917562860125809446, 6917563099052308461, 6917563105682348563, 6917563117770958650, 6917563207242249463, 6917563210700492667, 6917563223688686071, 6917563237338118044, 6917563291128459951, 6917563291504975184, 6917563296127491191, 6917563298033320511, 6917563468930580059, 6917563480243169326, 6917563579888284722, 6917564619841120088, 6917564622717528193, 6917564629425766301, 6917564778013159272, 6917564780618548498, 6917564793736383697, 6917564959803455829, 6917564970631252633, 6917564976901691766, 6917564985169913377, 6917565043182531729, 6917565046382915188, 6917565076343758158, 6917565094283006496, 6917565153716200892, 6917565156154031520, 6917565236304419581, 6917565236820358923, 6917565246979711402, 6917565310512394006, 6917565314981312253, 6917565574002278537, 6917565599821793630, 6917565660152131290, 6917565664998051521, 6917565870594334636, 6917565942084007761, 6917565943860685251, 6917565953574060639, 6917565957880247226, 6917566017622549052, 6917566063314023436, 6917566191412430845, 6917566197931927039, 6917566211793472365, 6917566222814723239, 6917566321854000108, 6917566387572153879, 6917566394688812964, 6917566464181517375, 6917566468465598293, 6917566474084827743, 6917566478212166079, 6917566499590326510, 6917566575432550076, 6917566817971156151, 6917566833160823598, 6917566846658886649, 6917566919498041725, 6917566928267548033, 6917566934976224854, 6917566993800467538, 6917567017504378639, 6917567017681643560, 6917567167085444581, 6917567181066388033, 6917567203004320643, 6917567444557272466, 6917567452818117549, 6917567456642765442, 6917567523845082942, 6917567536628152812, 6917567633286766831, 6917567634375078570, 6917567700496198485, 6917567701215083667, 6917567702950680722, 6917567710066214761, 6917567718859823527, 6917567739868344603, 6917567787357484836, 6917567802056933230, 6917567813592498077, 6917568071787569667, 6917568080012408938, 6917568141487931223, 6917568146894041465, 6917568155815349841, 6917568155867117123, 6917568155924191221, 6917568163513164194, 6917568178765577243, 6917568232894241582, 6917568244069189304, 6917568256496536565, 6917568333869851906, 6917568334958783334, 6917568406010735924, 6917568413523373824, 6917568420318492071, 6917568427686399547, 6917568684925813728, 6917568686446279577, 6917568700381956905, 6917568776164361876, 6917568780751830075, 6917568870394557501, 6917568938793065918, 6917568961486342650, 6917569030984833585, 6917569038087003052, 6917569052153882551, 6917569291506932314, 6917569292929922757, 6917569318010805689, 6917569377845353543, 6917569485257269136, 6917569486553345803, 6917569570277780051, 6917569918648344075, 6917569934682582171, 6917569997730677191, 6917570016157632951, 6917570016747996902, 6917570019123797324, 6917570028795781894, 6917570086327441425, 6917570106963681171, 6917570114906081657, 6917570176151307733, 6917570354807479059, 6917570551722000484, 6917570552826557585, 6917570619142111660, 6917570721961751670, 6917570724954922869, 6917570809100773694, 6917570879877334254, 6917570883820831744, 6917570930642172876, 6917571253141233263, 6917571258477204267, 6917571259095375000, 6917571259236472421, 6917571259266496564, 6917571291306803206, 6917571419801602200, 6917571443665619579, 6917571499894472360, 6917571502880023032, 6917571524421821540, 6917571524753859612, 6917571695489807926, 6917571764302302174, 6917571769447717642, 6917571785463641273, 6917571853144544646, 6917571887876321708, 6917572591656122449, 6917572608391425552, 6917572656972399306, 6917572660858583452, 6917572676822904752, 6917572680058311502, 6917572687498763582, 6917572757305015835, 6917572774833520026, 6917573006876355131, 6917573096489696019, 6917573101074807106, 6917573126609041781, 6917573213328913064, 6917573276924071425, 6917573277348776991, 6917573302799391418, 6917573362181547164, 6917573382401539435, 6917573585413902005, 6917573640860272562, 6917573641049123996, 6917573734435800604, 6917573740759225495, 6917573751208600902, 6917573801935416645, 6917573824998082323, 6917573895356098652, 6917573918157910128, 6917573979677013832, 6917574006467689797, 6917574019416029772, 6917574246871563021, 6917574264000576695, 6917574338158023289, 6917574429568883480, 6917574443801846424, 6917574447429893910, 6917574535600529448, 6917574541563381540, 6917574598904092861, 6917574976217876004, 6917575067983185084, 6917575134657854747, 6917575311663266475, 6917575490299182232, 6917575509220196305, 6917575575408218940, 6917575661079128716, 6917575679104783651, 6917575753821375390, 6917575858057085913, 6917575860766586696, 6917575866364310009, 6917575866685513354, 6917575958166941359, 6917576197588451170, 6917576235577038493, 6917576279784877416, 6917576295788199458, 6917576300561578512, 6917576307501285152, 6917576375592622627, 6917576402744458295, 6917576402800277946, 6917576402836335409, 6917576408015097122, 6917576475972072500, 6917576717883984780, 6917576738961742174, 6917576746863481956, 6917576831657242708, 6917576838011464105, 6917576840732263707, 6917576900212907117, 6917576927888074686, 6917576930545322977, 6917576932148095488, 6917576940755480783, 6917576940937516838, 6917577000161084568, 6917577059663585648, 6917577102515049362, 6917577107922628002, 6917577215231968912, 6917577357430542006, 6917577366083803646, 6917577523340136817, 6917577556043683664, 6917577608495032307, 6917577610502993507, 6917577631815379178, 6917577632412366525, 6917577636815176767, 6917577695179142759, 6917577717658219018, 6917577724097706474, 6917577958854196186, 6917577960687346606, 6917577979684902601, 6917577987944692812, 6917578051954011073, 6917578138102252853, 6917578161415908682, 6917578188665242045, 6917578251889260085, 6917578316848879478, 6917578317332560838, 6917578447188324130, 6917578507629570170, 6917578582112392152, 6917578599493067933, 6917578686708629725, 6917578687991471628, 6917578688674420438, 6917578692300573036, 6917578692333675400, 6917578692387873206, 6917578692574225470, 6917578692636011923, 6917578692662639959, 6917578699992887492, 6917578760611503363, 6917578760838222780, 6917578765005754628, 6917578770315317581, 6917578775068060754, 6917578784319508782, 6917578862955495789, 6917579204242408693, 6917579225552804790, 6917579228881782950, 6917579239157145442, 6917579289926830479, 6917579376362825132, 6917579376438235077, 6917579391317018485, 6917579396543754423, 6917579396827892247, 6917579398650094850, 6917579398764211888, 6917579463884377800, 6917579467896896023, 6917579467957398691, 6917579468318334031, 6917579481419733036, 6917579481548672307, 6917579481657486503, 6917579482035836615, 6917579483636624783, 6917579485045643218, 6917579487480054115, 6917579487579276927, 6917579487928953245, 6917579489043911160, 6917579552664360656, 6917579553940176637, 6917579555007589063, 6917579559883955308, 6917579559966314556, 6917579560020898030, 6917579570568018925, 6917579576418685679, 6917579639667280711, 6917579819044138181, 6917579825198511052, 6917579834216830892, 6917579834299978384, 6917579850167889478, 6917579869627805184, 6917579909399554082, 6917579910182667133, 6917579912917767311, 6917579918742046059, 6917579936380018938, 6917579998279697395, 6917580014499382681, 6917580023464993255, 6917580023517309324, 6917580096481124828, 6917580102548004726, 6917580106110480044, 6917580107948715072, 6917580108026803278, 6917580110362490496, 6917580172850832889, 6917580177192181778, 6917580180753357071, 6917580186928988092, 6917580208438021950, 6917580277125138404, 6917580282478469640, 6917580283995146013, 6917580441800186164, 6917580461600672398, 6917580461811772382, 6917580465097630718, 6917580465451729932, 6917580468786260416, 6917580469924515654, 6917580523257281292, 6917580528060580855, 6917580528838849655, 6917580529011503786, 6917580529554980795, 6917580535058453529, 6917580550907212909, 6917580616507861692, 6917580623403769742, 6917580631710855718, 6917580635741745492, 6917580639660003909, 6917580644886355030, 6917580653876352103, 6917580661017558681, 6917580709428163146, 6917580710859181468, 6917580722057573046, 6917580722533793464, 6917580722586123103, 6917580722675122381, 6917580723159615921, 6917580733056345023, 6917580737767791003, 6917580738752069482, 6917580742011695575, 6917580790669729735, 6917580791028533517, 6917580793224587136, 6917580800951116597, 6917580809231593614, 6917580809608192861, 6917580817246785689, 6917580821158051073, 6917580824315773857, 6917580831044194875, 6917580881179602000, 6917580889471838508, 6917580889571294596, 6917580889678389219, 6917580892955887648, 6917580895855038880, 6917580900351627376, 6917580987457436303, 6917581057804059330, 6917581068644479898, 6917581092117358438, 6917581141380158822, 6917581148055679079, 6917581148312933859, 6917581152397995717, 6917581164627412124, 6917581167048208704, 6917581168738154420, 6917581169083854086, 6917581175381299601, 6917581233003622374, 6917581235268169281, 6917581246205083775, 6917581249800009542, 6917581249924000347, 6917581250012792823, 6917581270149644774, 6917581286797176881, 6917581321877799514, 6917581322722941979, 6917581326384981808, 6917581326573410849, 6917581329466667663, 6917581341923944223, 6917581342101087968, 6917581343528676842, 6917581344307508608, 6917581345798981836, 6917581349076424258, 6917581350656450043, 6917581351120788023, 6917581408869642091, 6917581411455385270, 6917581414859639831, 6917581429441031433, 6917581432942257922, 6917581435347870296, 6917581435654194158, 6917581435962452173, 6917581436201221709, 6917581436423214859, 6917581439889763005, 6917581488322736351, 6917581496834525126, 6917581499008571810, 6917581503989816407, 6917581509377615640, 6917581515890437510, 6917581576706636714, 6917581590296121666, 6917581595850083390, 6917581599909742871, 6917581604376071830, 6917581613269904364, 6917581623581453977, 6917581676414874129, 6917581679923240987, 6917581682942509353, 6917581685024498876, 6917581689225382447, 6917581694418584558, 6917581705754434146, 6917581706026861856, 6917581715853662649, 6917581716156694662, 6917581724404853843, 6917581726356529829, 6917581771238739777, 6917581780949855841, 6917581782497186700, 6917581783577779401, 6917581788029550089, 6917581790608539164, 6917581809463932505, 6917581853836406760, 6917581855151732154, 6917581855918947972, 6917581855952010878, 6917581856035148895, 6917581856089471574, 6917581856118665464, 6917581856231708622, 6917581861069930066, 6917581867584077332, 6917581876945377637, 6917581877515507899, 6917581878282051763, 6917581880248955070, 6917581881422029525, 6917581881476517354, 6917581881490074187, 6917581881528170237, 6917581881857097295, 6917581881926191450, 6917581884478456091, 6917581942662058055, 6917581946582985045, 6917581946740345874, 6917581947322434703, 6917581947347795150, 6917581948836789179, 6917581950265697779, 6917581957478338335, 6917581958991727693, 6917581963455000932, 6917581969625461696, 6917581969628657132, 6917581975121583905, 6917581976089438838, 6917581981929388164, 6917582025535987184, 6917582027619255006, 6917582032785573787, 6917582034094762386, 6917582034278597720, 6917582035282913185, 6917582035844402346, 6917582040807317308, 6917582046787330360, 6917582046924394928, 6917582047983090763, 6917582049322972736, 6917582053601850361, 6917582054364733895, 6917582078787899138, 6917582083137940642, 6917582135195271081, 6917582142518834865, 6917582165551504213, 6917582217799942025, 6917582221051409677, 6917582234527762291, 6917582239979877549, 6917582257697718930, 6917582257767513978, 6917582293540250385, 6917582294775880655, 6917582295219083304, 6917582298171177226, 6917582303034986083, 6917582308180359750, 6917582316351212471, 6917582317358748027, 6917582319868409659, 6917582322055455790, 6917582335421234320, 6917582335829576143, 6917582335953462424, 6917582336369586203, 6917582384287805514, 6917582386834249119, 6917582388857844947, 6917582392323636472, 6917582392901817303, 6917582398462867844, 6917582400846518090, 6917582404207374151, 6917582404615642557, 6917582405596160459, 6917582408200011342, 6917582416763971034, 6917582417495202735, 6917582423733096431, 6917582425207124409, 6917582426635842255, 6917582469261006938, 6917582472107920020, 6917582474678387686, 6917582474974534862, 6917582479752260075, 6917582487559487962, 6917582490766932872, 6917582491041972591, 6917582491986843736, 6917582492571721343, 6917582498602997384, 6917582498641225354, 6917582499094936004, 6917582500009432247, 6917582502415600029, 6917582507226162047, 6917582507286545786, 6917582516140382012, 6917582517000977804, 6917582563464205266, 6917582563940938482, 6917582567154879698, 6917582576205662530, 6917582577080338260, 6917582581461399770, 6917582585775691945, 6917582585846126240, 6917582589020531160, 6917582592889072750, 6917582595582942418, 6917582606873287353, 6917582617450476322, 6917582623424777445, 6917582650143152962, 6917582650991776075, 6917582651488979225, 6917582651590622115, 6917582651840220164, 6917582651884013844, 6917582652203912674, 6917582655891050574, 6917582665837531391, 6917582666288639140, 6917582669626131262, 6917582670780645322, 6917582671065341934, 6917582671100129693, 6917582673665601872, 6917582674351909808, 6917582677131523899, 6917582679044524524, 6917582684928681644, 6917582693142448027, 6917582696459704457, 6917582740193625117, 6917582741623384861, 6917582742543744272, 6917582753968250213, 6917582787555550247, 6917582822903084983, 6917582836887453255, 6917582840859348667, 6917582847714036185, 6917582859392564954, 6917582859482899291, 6917582863041535812, 6917582870117625124, 6917582870226220714, 6917582874465808359, 6917582875322910006, 6917582911696407514, 6917582912137129031, 6917582913579506046, 6917582917066659070, 6917582921076925091, 6917582921299967633, 6917582927712855605, 6917582930249724708, 6917582932760295044, 6917582935306339896, 6917582935637516711, 6917582941360775100, 6917582943381632675, 6917582947215272222, 6917582952461746669, 6917582952674940020, 6917582956249974683, 6917582963761037964, 6917582999043036041, 6917583005836244466, 6917583008504833279, 6917583009543718816, 6917583010681683036, 6917583013674821669, 6917583020175578357, 6917583023367078835, 6917583029779617000, 6917583029846441705, 6917583033022758810, 6917583034420693126, 6917583046228646879, 6917583048828265737, 6917583090757071641, 6917583092939749750, 6917583096924077239, 6917583099008840583, 6917583104875559597, 6917583115117256240, 6917583118190034019, 6917583118571623388, 6917583121426115880, 6917583126706025047, 6917583133894105794, 6917583180782864817, 6917583192883250643, 6917583193401088948, 6917583195278542781, 6917583204395227398, 6917583219246809580, 6917583219503417224, 6917583220442027967, 6917583222646167081, 6917583225676956590, 6917583227583869950, 6917583229016468851, 6917583264885786250, 6917583267507621055, 6917583271540398443, 6917583275305483943, 6917583284813708859, 6917583286418773132, 6917583288939643082, 6917583296257812987, 6917583299147370650, 6917583299393012339, 6917583302635206456, 6917583302749344554, 6917583303333837580, 6917583307141716702, 6917583309301210133, 6917583311463493135, 6917583311783268375, 6917583311934182972, 6917583362843053176, 6917583367962140129, 6917583369954714744, 6917583371870121691, 6917583378448071704, 6917583380902433644, 6917583380944687641, 6917583390460480081, 6917583395921881975, 6917583399282092701, 6917583400624187016, 6917583465089305481, 6917583466674089726, 6917583468375714205, 6917583472131286950, 6917583481436182016, 6917583481484413379, 6917583494172916136, 6917583531401193545, 6917583531815179970, 6917583532301978587, 6917583532446760016, 6917583532524127770, 6917583538575098349, 6917583538680478425, 6917583548598000741, 6917583549485200032, 6917583551346946581, 6917583553262341444, 6917583560840896019, 6917583561716228418, 6917583566405411700, 6917583578373745293, 6917583596079236953, 6917583622692043597, 6917583625471428142, 6917583629099130038, 6917583640975270235, 6917583650713903295, 6917583651711338956, 6917583652792628434, 6917583656220575303, 6917583661234668210, 6917583663710374046, 6917583664662425854, 6917583671975209364, 6917583708336337473, 6917583709358005339, 6917583727675020957, 6917583727675732329, 6917583728375471080, 6917583734419616466, 6917583736090768619, 6917583737580426767, 6917583737601521272, 6917583739611963792, 6917583750330049756, 6917583796837252322, 6917583798640125780, 6917583798712391183, 6917583803439948278, 6917583807979294088, 6917583814051666352, 6917583816206576322, 6917583816625373824, 6917583816696099344, 6917583817307454834, 6917583821668282821, 6917583823172010838, 6917583823733563726, 6917583840639055001, 6917583880893488931, 6917583884067487388, 6917583885732283878, 6917583911571156656, 6917583912545850450, 6917583914153825581, 6917583924349769517, 6917583935846832194, 6917583949302654583, 6917583974684958321, 6917583999694948377, 6917584007873268157, 6917584010782440349, 6917584041739720322, 6917584074797981171, 6917584088593198682, 6917584090455349734, 6917584101825961118, 6917584103157388266, 6917584158025113207, 6917584165506572839, 6917584169880355609, 6917584172927535610, 6917584175729441349, 6917584179948190159, 6917584179963637675, 6917584180271808000, 6917584180385886402, 6917584185369299327, 6917584193300521952, 6917584197660164760, 6917584253784930692, 6917584256699029488, 6917584258337434141, 6917584262102463874, 6917584263608435504, 6917584264893306175, 6917584265150586979, 6917584266810225066, 6917584268011035012, 6917584270019554473, 6917584279358725951, 6917584304462977413, 6917584328803166751, 6917584330373461748, 6917584330588767332, 6917584332742035346, 6917584335409538146, 6917584335495052718, 6917584336073821769, 6917584344711531507, 6917584344758294258, 6917584347474479858, 6917584351277238691, 6917584354362448900, 6917584358283626510, 6917584361429607744, 6917584361454081323, 6917584369585231941, 6917584377307083963, 6917584416152164310, 6917584434863361907, 6917584437885105355, 6917584441759668352, 6917584446400787463, 6917584446556244207, 6917584466298058026, 6917584467451693304, 6917584481409180566, 6917584508504985368, 6917584511757810835, 6917584515921026451, 6917584530019161411, 6917584531133689721, 6917584532013083537, 6917584534734869962, 6917584564244390272, 6917584619219114489, 6917584628895121336, 6917584710855050181, 6917584779126788135, 6917584779369213814, 6917584801223974274, 6917584801773597642, 6917584809791286682, 6917584813921085142, 6917584880507064007, 6917584918572611232, 6917584947345950393, 6917585035166281676, 6917585044356165726, 6917585069335588360, 6917585075789200216, 6917585087257941068, 6917585170011059280, ] # 计算相邻差值 deltas = [ids[i + 1] - ids[i] for i in range(len(ids) - 1)] # delta % 4096 的频率 mod_4096 = [d % 4096 for d in deltas] mod_counter = Counter(mod_4096) # 计算二进制末尾零函数 def trailing_zeros(n): return (n & -n).bit_length() - 1 if n != 0 else 64 # 统计末尾零分布 tz_counts = Counter(trailing_zeros(d) for d in deltas) # 可视化 plt.style.use("seaborn-v0_8") fig, axs = plt.subplots(2, 1, figsize=(10, 8)) # delta % 4096 分布 axs[0].bar(mod_counter.keys(), mod_counter.values(), color="steelblue") axs[0].set_title("Delta % 4096 分布") axs[0].set_xlabel("delta % 4096") axs[0].set_ylabel("频数") # 末尾零分布 tz_keys = sorted(tz_counts.keys()) axs[1].bar(tz_keys, [tz_counts[k] for k in tz_keys], color="darkorange") axs[1].set_title("Delta 二进制末尾零分布") axs[1].set_xlabel("Trailing Zeros (bit)") axs[1].set_ylabel("频数") plt.tight_layout() plt.savefig("id_delta_analysis.png") # 输出统计结果 print("Delta % 4096 最常见的余数:", mod_counter.most_common(100)) print("Trailing zeros 分布:", dict(tz_counts)) print(mod_4096) print(deltas) deltas.sort() for x in [(ids[i], ids[i + 1] - ids[i]) for i in range(len(ids) - 1)]: print(x)