System dwójkowy wymyślono ponoć już w Indiach, gdzieś około piątego wieku p.n.e. Dalej byli Chińczycy, gdzie ślady systemu dwójkowego można znaleźć w filozofii dualnej natury rzeczywistości - Yin-Yang i wokół systemu przepowiadania I Ching. Biskup Juan Caramuel y Lobkowitz (Ioannis Caramvelis) pisał o nim w r. 1673.
Potem przyszedł Leibniz zafascynowany chińszczyzną dzięki korespondencji z Bouvetem.
Niezły przegląd można znaleźć w tekście Kazimierza Trzęsickiego „Leibnizjańskie inspiracje informatyki”.
Wiele by można o tym pisać. Nie historia i nie spekulacje dotyczące związków I Chingu z algebrami Boole'a są dziś moim celem. Dziś chcę wprowadzić funkcję liczącą bity, będzie mi bowiem wkrótce potrzebna.
Przyjrzyjmy się liczbom od 1 do 20 zapisanym w układzie dwójkowym:
1 – 12,
2 – 102,
3 – 112,
4 - 1002,
5 - 1012,
6 - 1102,
7 - 1112,
8 - 10002,
9 - 10012,
10 - 10102,
11 - 10112,
12 - 11002,
13 - 11012,
14 - 11102,
15 - 11112,
16 - 100002,
17 - 100012,
18 - 100102,
19 - 100112,
20 – 101002.
Teraz, dla każdej z liczb policzmy ilość jedynek w zapisie tej liczby w układzie dwójkowym:
Widzimy np, że zarówno jedynka jak i dwójka, czwórka, ósemka, szesnastka, mają jedną jedynkę. Liczby 3,5,6,9,10,12,17,18,20 mają dwie jedynki. Liczby 7,11,13,14,19 mają trzy jedynki. Zaś 15 ma cztery jedynki. Dziwna to regularność ...
A oto wykres funkcji liczącej bity "1" dla liczb od 1 do 20
Tak zaś wygląda ten wykres dla liczb od 1 do 200
a tak od 1 do 2000.
Wykres jakby czegoś co chciałoby być okresowym, ale w sposób nieco chaotyczny. Widać to dobrze gdy opuścimy linie łączące kolejne punkty z przedostatniego (n=200) wykresu:
W przyszłym wpisie użyję tej funkcji liczącej bity w grafice zawijasowej.