Pochyl system liczb binarnych - Skew binary number system

Skośny system dwójkowy jest niestandardowy pozycyjnym systemie liczbowym , w którym n p cyfrowy przyczynia się wartość czasu cyfra (cyfry są indeksowane od 0) zamiast razy, jak w formacie binarnym . Każda cyfra ma wartość 0, 1 lub 2. Liczba może mieć wiele skośnych reprezentacji binarnych. Na przykład liczba dziesiętna 15 może być zapisana jako 1000, 201 i 122. Każda liczba może być zapisana jednoznacznie w skośnej binarnej postaci kanonicznej, gdzie występuje tylko co najwyżej jedno wystąpienie cyfry 2, która musi być najmniej znaczącą cyfrą niezerową. W tym przypadku 15 zapisuje się kanonicznie jako 1000.

Przykłady

Kanoniczne skośne reprezentacje binarne liczb od 0 do 15 pokazano w poniższej tabeli:

Dziesiętny Dwójkowy Pochylić binarny Potrójny
0 0 0 0
1 1 1 1
2 10 2 2
3 11 10 10
4 100 11 11
5 101 12 12
6 110 20 20
7 111 100 21
8 1000 101 22
9 1001 102 100
10 1010 110 101
11 1011 111 102
12 1100 112 110
13 1101 120 111
14 1110 200 112
15 1111 1000 120

Operacje arytmetyczne

Zaletą skośnego binarnego jest to, że każda operacja inkrementacji może być wykonana za pomocą co najwyżej jednej operacji przenoszenia . Wykorzystuje to fakt, że . Zwiększanie skośnej liczby binarnej odbywa się poprzez ustawienie jedynej dwójki na zero i zwiększenie następnej cyfry od zera do jednego lub jednego do dwóch. Gdy liczby są reprezentowane przy użyciu formy kodowania długości ciągu jako połączone listy cyfr niezerowych, inkrementacja i dekrementacja mogą być wykonywane w stałym czasie.

Inne operacje arytmetyczne mogą być wykonywane przez przełączanie między skośną reprezentacją binarną a reprezentacją binarną.

Od skośnej reprezentacji binarnej do reprezentacji binarnej

Biorąc pod uwagę skośną liczbę binarną, jej wartość można obliczyć za pomocą pętli, obliczając kolejne wartości i dodając je raz lub dwa razy dla każdego tak, że cyfra wynosi odpowiednio 1 lub 2. Podana jest teraz bardziej wydajna metoda, z tylko reprezentacją bitową i jednym odejmowaniem.

Skośna liczba binarna w postaci bez 2 iz jedynkami jest równa liczbie binarnej minus . Niech reprezentuje cyfrę powtórzone razy. Skośna liczba binarna postaci z jedynkami jest równa liczbie binarnej minus .

Od reprezentacji binarnej do skośnej reprezentacji binarnej

Podobnie jak w poprzedniej sekcji, liczba binarna postaci z jedynkami jest równa skośnej liczbie binarnej plus . Zauważ, że ponieważ dodawanie nie jest zdefiniowane, dodawanie odpowiada zwiększaniu liczby razy. Jest jednak ograniczony logarytmem, a inkrementacja trwa stały czas. Stąd przekształcenie liczby binarnej w ukośną liczbę binarną przebiega w czasie liniowo wzdłuż długości liczby.

Aplikacje

Skośne liczby binarne zostały opracowane przez Eugene'a Myersa w 1983 roku dla czysto funkcjonalnej struktury danych, która umożliwia operacje typu abstrakcyjnego danych stosu, a także umożliwia wydajne indeksowanie sekwencji elementów stosu. Zostały one później zastosowane do pochylenia stert dwumianowych , wariantu stert dwumianowych, które obsługują operacje wstawiania najgorszego przypadku w czasie stałym.

Zobacz też

Uwagi