29 listopada 2020

Właności związane z dzieleniem wstecz a wstępnym przybliżaniem dzielników

Kontynuując prace nad podejściem, który może okazać się wielomianowym (tzn. jedna iteracja znajduje dokładnie jedną cyfrę dzielników), przyglądam się blizej dzieleniu wstacz. 


Jeśli liczba złożona kończy się np. na 3, cyframi najmniej znaczącymi dzielników są pary (1,3) lub (7,9), bo 7*9 = 63. Inne iloczyny dają inne reszty. 

Cyfry dziesiątek, jeśli liczba kończy się na .53, oraz zakładamy, że cyfry najmniej znaczące dzielników to 9*7, to na cyfrze dziesiątek dzielników może wystąpić jedna z następujących kombinacji (kropka oznacza wcześniejsze cyfry):

(9,4):  .97* .49

(8,1):  .87* .19

(7,7):  .77* .89

(6,5): .67* .59

(5,2): .57* .29

(4,9): .47* .99

(3,6): .37* .69

(2,3): .27* .39

(1,0): .17* .09

(0,7): .07* .79

Zwróćmy uwagę, że zmianie o 1 cyfrze pierwszego z dzielników towarzyszy zmiana o 3 modulo 10 cyfry drugiego dzielnika. Jest to związane z parą cyfr najmniej znaczących. Wyraźny schemat, który będzie się powtarzał przy doborze kolejnych cyfr. 

Jeśli szukamy cyfry na pozycji n,  mocno zmienia ona tylko najbliższych n cyfr (bez uwzględniania przeniesień),  a na wcześniejsze działa tylko proporcjonalnie. Zmiana pary cyfr na danej pozycji wymaga ponownego sprawdzenie uzyskanych par cyfr bardziej znaczących. Modyfikują się one.

Weźmijmy zachłannie pary o największym poprzedniku na kolejnych pozycjach i przybliżmy rozkładaną wartość. 

Dla liczby 893 4053 są to 9997*8649 = 8649 4053, która ma ostatnie 4 cyfry identyczne z rozkładaną. Zmieniajac pary na pozycji tysięcy wartość nieco uscylując zmniejsza się do 1997*4649 = 928 4053, która jest lepszym przybliżeniem. 

Jeśli teraz zmienimy parę na pozycji setek, należy na nowo uzgadniać cyfry tysięcy, np do 1897*6349 = 1204 4053. Para tysięcy (1,4) przekształciła się tą zmianą na (1,6). I zmieniajac pary setek uzyskujemy najlepsze przyblizenie dla par setek (2,5), iloczyn 1297*6549 = 849 4053, oraz 1197*8249 = 987 4053. Przybliżenie straciło nieco na wartości, ale jest najlepsze dla zmian, kiedy modyfikujemy cyfry setek, a koregujemy cyfry tysięcy. Nie trafiamy dokładnie w rozwiązanie. Lecz dalej trzymamy się blisko wartości liczby rozkładanej. Zmiany sięgają tylko trzech cyfr, więc można założyć, że cyfry stojace na pozycjach tysięcy są już dobrym przyblizeniem cyfr dzielników. Prawidłowa para cyfr tysięcy to (1,8). Zmiany w dopasowaniu cyfrach setek przy znajomości cyfr tysięcy okazały się przedziałami monotoniczne.

Następna zmiana cyfr dziesiątek już wygeneruje wartość rozkładaną. O ile będziemy starać się za bardzo nie oddalać  od par (1,7) tysięcy i (1,2) setek.


W ten sposób przeszukiwanie 9*10^{2} możliwości (cyfry jedności uważamy za znane, dzielniki mają po 4 cyfry) sprowadza się do przeszukiwania wartości lepiej przyblizających rozkładaną wartość. Zamiast kolejno - skaczemy nad oscylacjami.