Sumar numeric

*Sumar pe scurt (!) la 18 aprilie 2019 pentru numerele descoperite:

-1718 numere în 2019;
-2533 de numere în 2018;
-1241 în 2017;
-46 în 2016;
-26 în 2015 (plecat de la 22777, câte rămăseseră din 2014);
-320 în 2014 (de la reluarea din ianuarie);
-în 2013 e mai greu de reconstituit, știu că prin iarnă eram pe la cotele 22194 și apoi 22224 (dacă 22457 era la sfârșit, țin minte ceva cu 22454 pe la 16 mai 2013, la întrerupere), oricum peste 260 de numere în 2013;
-în 2012 a fost altă „poveste-veste”, în februarie, pe 4, terminam de adunat marile șiruri de multiperfecte și semiperfecte de la Achim Flammenkamp și respectiv Numericana - și ajungeam la 22000 și câteva zeci în acea seară de sâmbătă înzăpezită, dar nu țin minte numărul exact, nu l-am scris. De atunci au mai fost găsite la ei câteva (numărabile pe degete) numere, pe care la mine le-am îmbogățit, cred, cu o suită de numere lăturalnice, cu abundențe „derivate” sau cu numitorul abundențial diferit de 1 și de 2, obținubile direct din cele „multi-semi” prin înmulțire și împărțire.
Ce țin minte sigur pentru 2012 este că la 12 noiembrie eram la cota 22125, dar la Anul Nou 2013 NU am memorat pe unde eram cu ele.
Și totuși, din 4 februarie, trebuie că au fost ceva mai mult de 100 de numere noi de fond 1 până la sfârșit. Tot atunci am fixat limita maximă de mărime (putere de zece) la 1910, care așa a rămas până azi.
Cât privește ce am adunat în 2012 până în acea sâmbătă seară, iar e greu de aproximat bine; mai conglomerasem numere din astea, „multi-semi”, ca puncte de plecare pentru cercetarea numerică, și în 2011 și chiar 2010 și ultima parte de 2009. Nu știu dacă nu erau 16000 și ceva de numere de fond 1 la intrarea în 2012...
Pentru mai multă statistică, ar fi trebuit să consemnez bine undeva cotele de fond 1 pentru date mari (chit că lăsasem calculatorul - Veritonul în 2011-2012 - să meargă la fondul 1 când eram plecat în vacanță de acasă, pentru Anul Nou). Așa, de pildă, la fondul 2 (înglobator al lui 1) știu că 2011 s-a terminat pe la 13300000 și ceva de numere, 10 milioane și o treime, iar 2012 cu vreo... 30-33 de milioane, poate;
-în 2011 au intrat sigur mii de numere de fond 1, bună parte prin preluare de la Achimericani (multisemi), plus, desigur, ce găseam eu în plus. Țin minte că 2010 s-a terminat cu vreo 6000 și ceva (poate peste 6500) de numere de fond 1, cele de fond 2 cu numitor peste 10 erau vreo 36700 când trebuia, la 23 decembrie 2010, să plec în vacanță de acasă FĂRĂ calculator aprins (un AsRock cu AMD Athlon XP 1800+ limitat-overclockabil, cu cooler pe aer), iar totalul, adică cu tot cu fondul 1, era pe la 43000 de numere, așa că în 2011 trebuie c-au fost vreo 10000 de numere în plus (cel mai bogat an de până acum, dar și cu numere luate de la alții);
-2010 este un caz interesant, în el în joia de 4 noiembrie am deschis fondul 2, gândit tocmai ca o poartă de extindere a numerelor cu ajutorul intermediarelor de alte abundențe (obținere unele din altele), că până atunci nu exista decât fondul 1 în sine, care și el până la o vreme (marțea de 7 septembrie) a avut o problemă de excluziune a „șeptarilor” (numerele al căror raport suma divizorilor/număr are numitorul egal cu 7, acele perioade de șase cifre). Nu țin minte, iarăși, câte numere de fond 1 erau exact în joia aceea, posibil 5000 și ceva, cercetarea mersese până atunci chiar și numai cu resursele interne din fondul lor, fără umplutură externă ajutătoare - la 16 septembrie fuseseră 4102, dintre care 89 erau șeptarii strânși deoparte pe 7 septembrie; la 10 august 2010, am numărat 1733 de numere; prin iulie înființasem principiul obținerii lor PROGRAMATORICE (vecun) unele din altele, în sus și în jos, înmulțire și respectiv împărțire (astăzi vecun este în continuare auxiliar, aduce numere noi de fond 1 pe lângă rezultatele de la numsimpl, MODPRIME și HMODIFSUM) - de unde până-n iulie le obțineam manual, dând câte un număr de plecare pe ecran, și la 1 iulie 2010 fuseseră vreo 1550, poate (888 cu divizor maxim impar pe 64 de biți pozitivi, restul pe precizia extinsă, MIRACL Flash la acea vreme - pe la sfârșitul lunii iulie am remarcat rapiditatea Big); din mai 2010 eram efectiv cu MIRACL-ul la bătaie; până în primăvara aceea fusesem numai cu numere încadrabile la long double, deci sigur sub 1000, și de aici în jos le pierd șirul numeric. Nu mai pot să dau date exacte de număr de numere (și acel 888 a fost fără îndoială rezultatul unor îmbogățiri din 2010).
E posibil ca prin martie 2010 să fi fost (estimez la nimereală) pe la 500-600 de numere, care erau trecute manual într-un fișier BAZNUM.TXT, ce „se creștea” și el. Tot pe atunci adunam deoparte factori de legătură (cu care vedeam că, înmulțite sau împărțite, numerele se obțineau unele din altele, și îi refoloseam, factorii ăștia). Pe la 31 ianuarie abia descopeream verificarea restului long double cu fmodl - și am mai tot scris cum puneam câte un număr mare, long double, traversam cu răbdare divizorii lui (cu puncte regulate pe ecran, să îmi arate pe unde s-a ajuns cu căutarea) și acelor divizori le verificam la rândul lor abundența prin construcția sumei de divizori cu metoda clasică a sumării (însă cu reperul radicalului, salvat într-o variabilă deoparte, deci fără n div 2).
Au fost destule numere de long double înmagazinate în BAZNUM.TXT (BAZSUS a apărut prin august) până în primăvara anului 2010, la Anul Nou îndrăznesc să cred că or fi fost sub 300 de numere, 200 și ceva poate, acolo în BAZNUM; și atunci, în tot anul, or fi intrat vreo 6300 de numere;
-2009 a fost anul când s-a deschis interesul foarte mare pentru numere, din duminica de 15 noiembrie; am înțeles atunci că este mai optim să ținem deoparte în variabilă valoarea unui sqrt(n), extras o singură dată și refolosit ca valoare de-a gata în ciclul repetitiv, plus să parcurg for-ul de sus în jos, comparând repetat cu valoarea minimă, nu cu una mare, darămite cu o extracție radicală; ca idee, deja știam că la divizori este mai bine cu pragul radical decât până sus la număr sau măcar până la jumătatea lui de căutat. În ultima lună și jumătate din 2009, în mod sigur trebuie c-am deschis fișierul unde puneam numerele, dar nu sunt în postura să zic exact câte erau pe 15 noiembrie și câte am înmagazinat. Însă sigur au fost descoperiri noi, interesante. Posibil câteva zeci, poate vreo 30 de numere noi puse.

În 2008 nu s-a găsit absolut nimic la numere. Prin octombrie am încercat prima dată în viață să folosesc niște numere în tipul long double al lui C (oricum mai folosisem C la numere prin 2005, dar nu la long double, abia acum, în 2008, ca student, știind ce trebuia despre printf la C, față de trunchierea exponențială a afișajului la cout în C++), numai că, fără să realizez la timp, am vrut să folosesc un număr long double fără a îl fi inițializat după declarare, și nu mi-a mers.

În 2007, mai ales în decembrie (dar nu numai, și puțin prin iunie), au fost zile fructuoase la găsit numere noi. Atunci eram în Borland Pascal și au fost mai multe zeci de numere noi între 22 și 28 decembrie 2007, în vacanță acasă. Le scriam pe hârtie, dar nu le-am numărat. Târziu am început cu statistici de numărare numerică.
BAZSUS.TXT exista de prin 2006, cred, iar atunci în decembrie 2007 i-am îmbunătățit organizarea, când tot puneam numere noi. Foloseam funcția frac() pentru partea fracționară a unui număr cu virgulă în Pascal. Și tocmai găsisem un tip de date interesant, pe 64 de biți (cu semn), având numere scrise întreg, dar tratabile cu funcții reale - comp.
Înainte de comp erau real și mai ales extended.
Abia de prin 2007 a început povestea cu adunarea de numere deoparte, atunci, când cu valul din decembrie. Până la vacanța de iarnă din clasa a douăsprezecea, or fi fost câteva zeci sau vreo sută (?) de numere în BAZNUM? Unele erau la mine în cap, altele scrise deoparte, în mod sigur până în decembrie 2007 văzusem zeci și zeci, poate peste o sută, de numere diferite (atenție - fără șeptari) cu numitorul abundențial maxim 10, pornind de la cele perfecte. Și în 2007 oi fi pus deoparte vreo 50 de numere noi sau mai multe.

Ultimii doi ani numerici tratabili sunt 2006 și 2005, mai mult cu activitate din mai 2005 în ianuarie 2006, apoi destul de răzleț în 2006 (puțin mai-iunie, crâmpeie prin august-septembrie, ceva prin luna noiembrie, cu 10 și 30) și 2007 (cum ziceam despre luna iunie), până la valul din decembrie. Până în vara lui 2006 calculatorul din casă avea doar 133 de megaherți la procesor, fiind un Intel Pentrum de primă generație (anii 1990), cu un RAM pre-DDR (nici nu știu cum se chema) de 31 MB + 1 MB video partajat (!), iar hard disk-ul avea 1250 de milioane de octeți capacitate, dar la nivelul numeric din 2005-2006 nu se punea nexam problema de spațiu pe disc, nici măcar de memorie (așa de mică), doar viteza procesorului (nu se vorbea de inimă multiplă), iar CUDA oricum abia se inventa în 2006 - și, pe lângă viteza procesorului, desigur că mai conta și performanța codului scris, adică pe cât de deștept eram când scriam instrucțiunile de căutare. Că sunt coduri bune și coduri proaste, ca la diferența dintre „de la 2 la radical, cu radicalul salvat deoparte” și ”de la 2 la n/2, unde n/2 se repetă în tot for-ul”.

Până prin iarna lui 2006 găsisem și văzusem deja zeci de numere perfecte, multiperfecte (și pe Internet la laboratorul de informatică de la școală, eu până în sâmbăta de 19 august 2006 neavând cum intra pe Internet din casă), unele semiperfecte, altele cu abund-numitori mai mari de 2 (cu fracții mai de bază, totuși, mai rezonabile ochilor, că de asta multă vreme am fost alergic la șeptari), dar la acea vreme, cât privește „Achim-Numericana”, ori nu existau încă, ori nu aveam eu ochi și timp să le caut pe Internet la școală, mi se pare totuși că Math Wolfram era deja. Dar în noiembrie 2009 a fost primul moment adevărat când am dat ochii cu multe numere (semiperfecte, în primă fază) de bază, și mari.

Nu sunt în măsură să zic câte numere noi oi fi găsit în 2006. La 30 noiembrie știam care este al doilea „1.5”, 2.5 de fapt, cu tot cu numărul inclus în suma divizorilor împărțită la el însuși, anume 91963648, 24 fiind primul. În ianuarie 2006 trebuia să fiu mai răbdător la căutarea ajunsă pe la 60 și ceva de milioane, și l-aș fi aflat atunci. Știam pe de rost nouă numere perfecte (dar și că mai sunt...), dintr-a zecea (2005-2006) am aflat că există doar șase biperfecte (120, 672, 523776, 459818240, 1476304896 și 51001180160), în iarna lui 2006 am văzut și niște triperfecte (30240, 32760 - ce aproape - , 2178540, 23569920, 45532800), la tetraperfecte știam de 14182439040, 31998395520 și 518666803200; la „cvintaperfecte” primul număr are vreo 15 cifre parcă. Am mai uitat din ele între timp, mă ajută verificarea pe Internet să revăd și să le țin iar minte bine.

Interesul pentru numere cu abundențe fracționare mi s-a deschis tot printr-a zecea, în sezonul rece 2005-2006, ca să aflu mai multe despre numere, că la perfecte, „bi” și „tri” lucrurile erau oarecum puține, cunoscute în partea de jos (accesibilă) și banale, iar de parcurgeri de tipul „primele n numere prime” și „primele a numere cu b divizori” sau chiar „care-i numărul cel mai abundent pe long double” mă plictiseam; voiam elemente cu proprietăți abundențiale punctuale.
Din acea perioadă (decembrie 2005 - încoace) datează și curiozitatea pentru ceva ce nu am găsit niciodată: un număr a cărui sumă de divizori împărțită la el însuși să dea fix 4.1, sau 3.1 dacă nu adunăm numărul în sumă.
Nu am găsit așa ceva niciodată, iar zona de mărime (număr de cifre plauzibil) pe unde un astfel de număr ar fi putut să fie este demult moartă la noutăți. Mult sub 100 de cifre; abundențe bine raționalizate la numere foarte mari nu se pot găsi cu valori prea mici, valorile abundențiale până în 5 dispar până la un anumit număr de cifre care nu-i foarte mare. Așa că foarte probabil acel „3.1” nu există.
Dar poate că totuși.

Și nici în 2005 nu pot să zic exact câte numere am cunoscut. Cred totuși că am bătut suta de văzute. Până la venirea toamnei mă interesau numai cele perfecte și, prin august, și primul bi-perfect („număr Polidecte”, cum îi ziceam, 120). Al nouălea număr perfect l-am aflat în decembrie, în vară știam de șase dintre ele (al... șaptelea fiind cel mai mare, adică 137438691328, că pe 8589869056 l-am aflat în septembrie, realizând că și 131071 este număr prim). Apoi pe celelalte două. Și pe-al zecelea prin 2014, dar trebuie să-i rememorez cifrele pe de rost.
Primele 12 numere perfecte sunt primite în povestea cu numerele. Celelalte, care-s mai mari, NU; pe al 13-lea nu am încercat să-l includ. Fondul 1 mai poate primi numere de la cele 37 de perfecte rămase, plus derivații lor (în general fiecare număr perfect mai are o cohortă de numere cu abund-numitori sub 11, care se obțin prin înmulțiri sugestive - dar perfectele sunt imense, până la milioane de cifre, iar eu am stabilit limita numerelor la câteva unități de putere de zece peste singurul număr cu abundența 11 găsit vreodată, oficial - în marțea de 13 martie 2001 - și care are 1907 cifre).

Totuși, al 13-lea număr perfect, de pildă, nu ar fi prea mare ca să intre. În fapt, chiar până la al șaptesprezecelea număr perfect, au sub 1911 cifre. Al 17-lea număr ar avea pe la 1374 de cifre, iar următorul deja ar fi pe la 1937. Iar al treisprezecelea ”doar” 314. Următoarele trei, pe la 366, 770 și 1327. Dar deja sunt toate destul de mari, pentru puterile lor de 2 ar trebui un regim special de tratament la construcția sumelor de divizori (treaba lui ASUSPRIME), iar abundențele neîntregi ale numerelor colaterale sunt cunoscute și populate la primele douăsprezece cazuri. Poate sunt și numere mai mari care, cu numitori abundențiali sub 11, se împart cu cele cinci perfecte nebăgate în seamă. Însă astea toate sunt cazuri pentru ASUSPRIME, chiar GIG1910 pentru ultimele trei numere.
Și le-am pus ieri. La căutarea în sus cu VECUN, fiecare număr dintre cele cinci noi perfecte a mai adus cu el alte nouă, cu abundențe adiacente. Cinci numere prime noi, mai mari decât toate celelalte, două la 420 și toate cinci la 1910.
Și am făcut variantă de paralelizare și la VECUN, după celelalte cu NUMSIMPL, MODPRIME, HMODIFSUM, filtrările, sortările și CARONTE. Mepezetelele de manevră trebuiesc însă vectorizate.

Și mai este o zonă unde am făcut paralelizare OMP: la FACTORSUBM și varianta cu prime foarte extinse, SCLEPAMORIS. Fără înlocuirea vechilor fișiere, ci prin facere de două noi surse cu „PAR” în fața numelui original. Unele variabile întregi au trebuit redeclarate înăuntrul blocului paralel, pentru siguranța informației private (întregi care se modifică după cum este conjunctura) și pentru protecția așa numitei Stack memory.
Și desigur, mepezetelele modificabile în bloc au fost vectorizate după dimensiunea de ciclare a for-ului, care este divizibilă prin 100 cu numărul de thread-uri paralele.


Și atunci:

2005: ~100 de numere văzute.
2006: <=50 de numere tratate.
2007: ~50-100 de numere în discuție.
2008: nimic.
2009: <=25 (?) de numere noi.
2010: ~6000 de numere.
2011: ~10000 de numere.
2012: ~alte 6000 de numere.
2013: ~300 de numere.
2014: 320 de numere.
2015: doar 26.
2016: alte 46.
2017: 1241 de numere.
2018: 2533 de numere.
2019: ~1800 de numere*.

*Până pe 19 aprilie.

Comentarii

Postări populare