25 sierpnia 2017

Ile jest cyfr

Na to pytanie, o ile ktoś nie myli cyfry z liczbą, mówi: jak to ile? Dziesięć. A oto one: 0, 1, 2, 3, 4, 5, 6, 7 , 8, 9.
W systemie binarnym występują tylko dwie cyfry: 0 i 1.
W szesnastkowym z kolei brakuje różnych cyfr. Uzupełniamy literami: A, B, C, D, E, F.
Są kolejne cyfry alfabetu, że można podać około 36 rozróżnialnych cyfr, od 0 do Z.

No dobrze, ale potrzebuję więcej cyfr, które mogę porównywać. Kilkaset, może parę tysięcy.
Kiedy zacząłem studia, korzystając z wyświetlacza cyfrowego (ma 4 pionowe kreski i 3 poziome, dodałem jeszcze ukośne / oraz \ ) wypisałem sobie kilkaset cyfr. Każda kolejna to była ściśle uporządkowana permutacja podzbioru kresek uporządkowanego rosnąco. Kilkaset cyfr.

Teraz, kiedy mam coraz mniejsze szansę na pracę, mogę wrócić do tego pomysłu. Ale ulepszę go. Dalej mam krawędzie komórki wyświetlacza cyfrowego, które porządkuję następujaco:
    _3
1| _ | 2
   4
/ to 5 oraz \ to 6.
Ale teraz inaczej grupuję. Podstawowy schemat to ciąg (134 oznacza obecność krawędzi o podanych numerach):
1  2  12  3  4  34  13  14  23  24  123  124  134  234  1234
Po wyczerpaniu możliwości dochodzą kolejno 5, 6, 56.
Tym razem oprócz rozróżnialności dołączam kryterium spójności, czyli wszystkie składowe kreski są złączone końcami. Dlatego nie będzie cyfrą 34 czyli =. Wydaje się mniej możliwości, lecz jest to złudzenie, gdyż teraz po osiągnięciu cyfry 123456 (dziesiętne 58) tworzę metaschemat, w którym ten sam mechanizm stosuję do grup kresek (górna).(dolna). Czyli dopiero teraz uzupełniam do klasycznego okienka wyświetlacza cyfrowego.
Czyli tworzą się rodziny ().1, ().2, ().12, schematy z ().3 się powtarzają wcześniej, zaś schematy ().4, ().34 nie są spójne, zatem są opuszczane.
Ze względu na rozróżnialność, jeśli mamy ().1, musi istnieć krawędź (krawędzie) 12 lub 4, gdyż 1.1 oraz 1 są nieodróżnialne. Podobnie nieodróżnialne są 13.1 oraz 13, gdyż dodatkowa krawędź ().1 jest przedłużeniem już istniejącej 1.(). Same przedłużenia występują, gdy istnieje nieprzedłużona równoległa krawędź.

Kiedy w tych dwu komórkach dojdziemy do postaci cyfrowego 8, dołączamy najpierw w komórce górnej 5, potem w dolnej 5, potem w obydwu 5. w górnej 6 (a potem 5, pojawia się m.in. cyfra > ), w dolnej 6, w obu 6, w górnej 56, w dolnej 56, w obu 56. W tych schematach jest mało powtórzeń oraz opuszczeń ze względu na niespójność.

Kiedy skończymy tę grupę, osiągając cyfrę 123456.12456 (4 z góry = 3 z dołu), następny megaschemat to poziome ()-(). Tym razem ignorujemy schematy, w których występuje 3-() bez 4-() lub 2-(), gdyż 2 pierwszej komórki jest 1 drugiej. I kolejne kilkaset cyfr gotowych.

Megaschematy łączymy wierzchołkami, nie krawędziami. Pojawia się dodatkowa możliwość łączenia po skosie, co jednak zignorujemy, bo prawie pusta komórka pierwsza megaschematu ()[.()]-() odpowiadającego 13 to wypełni. 
Pozwala to wygenerować tysiące różnych cyfr, które możemy porównywać. Zaś przeliczaniem na system dziesiętny niech się zajmie komputer dużej mocy...

03 sierpnia 2017

Związek systemu Fibonacciego z systemem trójkowym

Kiedy operuję konwersjami dzielącymi przez 3 i jej potęgi, działam tylko na nieparzystych cyfrach w systemie Fibonacciego. Pojawił się pomysł, aby zapisać liczbę wypisując tylko te cyfry z systemu Fibonacciego. Wtedy na pozycjach tych występują tylko 0, 1 i 2.
Kiedy przyglądałem się temu, zauważyłem niezwykłe podobieństwo do systemu trójkowego, Jest jednak drobna różnica. Przekształcam konwersjami postać:
0020200 = 0021001 = 0110001 = 1000001
Wypisuję co drugą cyfrę 0220 = 1001. I tu kryje się modyfikacja.
System Fibonacciego utożsamia ze sobą wszystkie postaci 220, 221, 222, 1000, 1001 systemu trójkowego. Gdy liczba kończy się na 22, ostatnie '01' jest  ignorowane. Istotne tu są zwłaszcza te trzy z podciągiem '22', które praktycznie nie mają prawa wystąpić w systemie Fibonacciego.

Wyłączmy zatem n krotność 22_3=8d oraz iloczyn 5 z krotnością wystąpień '22x' dla wszystkich możliwych pozycji '22' w reprezentacji trójkowej.
Dodajmy do n te krotności i zapiszmy przybliżenie liczby w systemie trójkowym.
Np. 59 /8 = 7, 59/24*5 = 10, 59+7+10=76 = 2211_3;
74/8 = 9, 74/24*5 = 15, 74/72*5 = 5, 74+9+15+5 = 103 = 10211_3.
Rozpisując teraz uzyskane cyfry systemu trójkowego jako pary cyfr systemu Fibonacciego uzyskamy dosyć dobre przybliżenie wartości systemu Fibonacciego z nadmiarem, uzyskanego schematami z dzieleń [00300]=[100001]. Biorąc mnożnik 3 zamiast 5, uzyskamy przybliżenie z niedomiarem.

Jest to hipoteza, sprawdzona na kilku przypadkach.
Tak 2211_3 daje liczbę 2020101 = 62d  przy wartości uzyskanej 59d=2020001; 
10211_3 daje 100020101 = 75d przy wartości uzyskanej 74d=100020100.