八卦樹對天量快檢索
按我寫的“換思路再看八卦的數(shù)”文中介紹的,將伏羲八卦的陽爻“–”圖形看成數(shù)字1,將伏羲八卦的陰爻“- -” 圖形看成數(shù)字2時,伏羲八卦的各卦圖形對應的數(shù)為:
本文引用地址:http://m.butianyuan.cn/article/202212/441238.htm乾?卦為111、兌?卦為211、離?卦為121、震?卦為221、
巽?卦為122、坎?卦為212、艮?卦為122、坤?卦為222。
這種以1和2字符標識出伏羲八卦的各卦圖形的數(shù)定義為二的冪進制數(shù)。二的冪進制數(shù)有3個字符,分別為1、2、0。二的冪進制數(shù)的計數(shù)規(guī)則是滿2的值時向上位進1,且進位位恢復系數(shù)為1,二的冪進制數(shù)轉(zhuǎn)換為十進制數(shù)時的方法與二進制數(shù)類同,各位的數(shù)字符號乘以數(shù)位權(quán)的和。十進制數(shù)轉(zhuǎn)換成二的冪進制數(shù)方法比較復雜,可在網(wǎng)上查閱我寫的“用整數(shù)樹的研究成果 探索軟件的創(chuàng)新發(fā)展” 《軟件世界》2008年第8期中介紹的一種轉(zhuǎn)換方法。
圖1:用二的冪進制數(shù)標識的伏羲八卦圖
一、伏羲八卦樹
二的冪進制數(shù)是研究伏羲八卦時,按易經(jīng)中描述的伏羲八卦是“太極生兩儀、兩儀生四象、四象生八卦、八卦生萬物”的二分法生成卦圖顯示出的規(guī)律發(fā)現(xiàn)的。
圖2:從太極二分法生成伏羲八卦圖
將圖2太極二分法生成伏羲八卦圖中的兩儀、四象、八卦中的陽爻“–”圖形看成數(shù)字1,陰爻“- -” 圖形看成數(shù)字2替代后,可得到圖3。
圖3:用二的冪進制數(shù)和十進制數(shù)標識的太極生成伏羲八卦圖
在圖3用二的冪進制數(shù)和十進制數(shù)標識的太極生成伏羲八卦圖中,兩儀、四象、八卦的下面標注的是對應的二的冪進制數(shù),上面標注的是對應的十進制數(shù)。再將圖中兩儀、四象、八卦的各卦位置看成一個個結(jié)點時,伏羲八卦就是一個二叉樹。
在數(shù)據(jù)結(jié)構(gòu)研究中,人們?yōu)榱丝焖贆z索數(shù)據(jù),設(shè)定了二叉樹、B+樹、基數(shù)樹等許多種二叉或多叉樹,統(tǒng)稱為檢索樹。檢索樹的生長過程是:在根結(jié)點下有1個以上子結(jié)點,構(gòu)成第一層子結(jié)點。按設(shè)定需要,第一層的各子結(jié)點做為父結(jié)點還可有1個以上子結(jié)點,構(gòu)成第二層子結(jié)點……,如此,可生長出若干層子結(jié)點,構(gòu)成某種檢索樹。各種檢索樹的每層結(jié)點的個數(shù)、生長的方式和標識等都有所不同。
圖4:二叉檢索樹圖 右側(cè)為完全二叉檢索樹
將圖3伏羲八卦的二叉樹中的太極看做二叉樹的第一層父結(jié)點,則與數(shù)據(jù)結(jié)構(gòu)中的完全二叉檢索樹的圖形結(jié)構(gòu)完全一樣,如同圖4中的右側(cè)的完全二叉檢索樹,也都有15個結(jié)點,也都可用于數(shù)據(jù)檢索,但是這兩個二叉樹的特征有很大不同。
二、伏羲八卦是二叉整數(shù)樹
根據(jù)伏羲八卦生萬物的認識,按照二分法生成規(guī)律,八卦可無限層往下分出卦。將圖3太極生八卦圖中太極看成0層,兩儀看成1層,四象看成2層,再二分可得到3層即為八卦層。將每層的各結(jié)點用十進制數(shù)(不是完全二叉樹的結(jié)點順序號)表示該結(jié)點對應的二的冪進制數(shù)值后,可得到圖5四層二叉樹。(再下分2層,就是64卦,在此不多述)
圖5:伏羲八卦二叉樹前0至4層結(jié)點分布圖
在圖5伏羲八卦二叉樹前0至4層結(jié)點分布圖中0至30十進制整數(shù)一個不缺,一個不重復地有規(guī)律排列著。已證明,伏羲八卦二叉樹再二分下去至N層(N為無限大正整數(shù))時,也都有對應的整數(shù)按規(guī)律分布在各層的結(jié)點上。
整數(shù)有無限多是天量,伏羲八卦二叉樹也有無限多天量結(jié)點可使無限多天量整數(shù)有規(guī)律地排列在對應結(jié)點上。因此將伏羲八卦二叉樹稱為整數(shù)二叉樹。正如整數(shù)有負整數(shù)一樣,二叉整數(shù)樹也還有以0為父結(jié)點的鏡像的負整數(shù)二叉樹,在此不多述。
研究整數(shù)二叉樹發(fā)現(xiàn)整數(shù)樹上的各結(jié)點的一些排列規(guī)律:
1、所有整數(shù)中的奇數(shù)都排列在根結(jié)點0的第一子結(jié)點1及它下面的分叉樹的各層結(jié)點上。所有整數(shù)中的偶數(shù)都排列在根結(jié)點0的第二子結(jié)點2及它下面的分叉樹的各層結(jié)點上。
2、整數(shù)二叉樹上所有父結(jié)點與其第一子結(jié)點的差值R=1*2n(n為父結(jié)點的層數(shù)),與其第二子結(jié)點的差值R=2*2n。
3、整數(shù)二叉樹上所有父結(jié)點的第一子結(jié)點與第二子結(jié)點的差值R=1*2n(n為父結(jié)點的層數(shù)),等等。
整數(shù)除了以二叉樹存在,還以1為差的整數(shù)一叉樹即等差數(shù)列存在,還以3至m(m為無限大正整數(shù))叉樹存在。下圖是整數(shù)4叉樹:
圖6:整數(shù)4叉樹圖
在數(shù)據(jù)結(jié)構(gòu)中介紹有多種和多叉檢索樹。
所有檢索樹的共同特點是:
1、樹結(jié)構(gòu)是人為設(shè)置
2、各層結(jié)點個數(shù)不固定
3、各結(jié)點上的數(shù)據(jù)不固定
4、樹的層(深度)是有限的
研究發(fā)現(xiàn),所有整數(shù)樹的共同特點是:
1、樹結(jié)構(gòu)不是人為設(shè)置,是客觀存在
2、各層結(jié)點個數(shù)固定和完整
3、各結(jié)點上的數(shù)據(jù)是1個固定不變的整數(shù)
4、樹的層(深度)是無限的
簡單說,整數(shù)樹是客觀存在的,檢索樹是人為設(shè)定的。
三、天量數(shù)據(jù)與檢索算法
信息技術(shù)是用計算機對數(shù)據(jù)處理的技術(shù)。計算機數(shù)據(jù)處理操作主要分三步:數(shù)據(jù)輸入、數(shù)據(jù)計算、數(shù)據(jù)輸出。通常計算機的運算速度是決定數(shù)據(jù)處理速度的主要因素。但是隨著需要處理的信息量和信息源種類的增多,如何快速地相應提高數(shù)據(jù)輸入和數(shù)據(jù)輸出的速度也成為重要因素。在許多不匹配的信息處理中,常常計算機在等待計算數(shù)據(jù)的提供,在浪費計算資源。影響數(shù)據(jù)的輸入和輸出時間的原因是計算機的外部設(shè)備尋找數(shù)據(jù)的存取時間慢。有諸多因素造成數(shù)據(jù)的存取時間慢,其中查找數(shù)據(jù)存取地址的檢索算法優(yōu)劣是最主要因素,尤其在需處理的數(shù)據(jù)量非常大時。
人們已習慣將非常大的數(shù)據(jù)量稱為海量數(shù)據(jù),是可以理解的。但是,常有一些公司將他們的產(chǎn)品的處理數(shù)量宣傳為海量就不科學了。因為稱為海的大小不一,如中南海、北海、東海等等都是不同大的。
在自然界中海是有邊界的,海量也是是有限量,只有天無邊界,可稱為天量。目前沒有一家公司產(chǎn)品能狗快速處理天量數(shù)據(jù)。因為在迄今為止的數(shù)據(jù)結(jié)構(gòu)中的隊、棧、表、圖、樹等等數(shù)據(jù)檢索的方法都是在有邊界的閉區(qū)間內(nèi)的檢索的方法,即對有起始數(shù)據(jù)A和終止數(shù)據(jù)B之間的檢索;不能在開區(qū)間,即對有起始數(shù)據(jù)A,沒有終止數(shù)據(jù)B的無限增長的數(shù)據(jù)檢索,因為沒有發(fā)現(xiàn)和發(fā)明對應的數(shù)據(jù)結(jié)構(gòu)。
世上有無限增長的量嗎?有!我們天天用的數(shù)就是無限增長的量,例如整數(shù)就是無限增長的天量,并且所有數(shù)都源自整數(shù)。那有需要處理天量數(shù)據(jù)的應用需求嗎?有!在智慧城市中的千千萬萬個攝像頭在不斷產(chǎn)生的視頻信息就實天量,需要快速檢索處理。在信息化快速發(fā)展的時代,凡無邊界在增長的數(shù)據(jù)都有必要按天量數(shù)據(jù)進行設(shè)置和處理。否則,如按閉區(qū)間的檢索設(shè)置和處理,今后可能會有重新要設(shè)置的麻煩問題。
那有快速處理天量數(shù)據(jù)的檢索算法嗎?有!就是源自伏羲八卦二叉整數(shù)樹的數(shù)據(jù)結(jié)構(gòu)啟發(fā)的檢索方法。
圖7:伏羲八卦整數(shù)樹的前0至4層數(shù)據(jù)結(jié)構(gòu)圖
圖7是在前面伏羲八卦二叉樹前0至4層結(jié)點分布圖上在每個結(jié)點內(nèi)增加了對應該結(jié)點的二的冪進制數(shù)顯示,標識的這些二的冪進制數(shù)的值與該結(jié)點標識的十進制數(shù)的值相等。
檢索技術(shù)的核心是如何快速查找出數(shù)據(jù)存取地址,為此人們研究出隊、棧、表、圖、樹等數(shù)據(jù)結(jié)構(gòu)和哈希算法等多種算法。伏羲八卦整數(shù)樹能對天量數(shù)據(jù)快速檢索是基于發(fā)現(xiàn)了它的獨特的數(shù)據(jù)結(jié)構(gòu)和在該數(shù)據(jù)結(jié)構(gòu)上研究出的檢索算法。
對照圖7伏羲八卦整數(shù)樹的前0至4層數(shù)據(jù)結(jié)構(gòu)圖,伏羲八卦整數(shù)樹有一些利于能對天量數(shù)據(jù)快速檢索算法的特征。歸納有:
1、伏羲八卦整數(shù)樹對應天量整數(shù)有可無限增長的天量結(jié)點。
此點已做說明,不再多述。
2、伏羲八卦整數(shù)樹的層數(shù)為N(N為0至無限大正整數(shù))。從N=1層開始,每N層位置碼的位數(shù)等于層數(shù)N。
例如:N=2層(四象層)的對應四象的4個二的冪進制數(shù)都是2位。N=3層(八卦層)的對應八卦的8個二的冪進制數(shù)都是3位。
3、伏羲八卦整數(shù)樹的各結(jié)點的二的冪進制數(shù)是從0根結(jié)點二分法產(chǎn)生。將各結(jié)點的二的冪進制數(shù)定義為該結(jié)點的位置碼后,可看到每個第1子結(jié)點的位置碼(二的冪進制數(shù))是在其父結(jié)點的位置碼前(左側(cè))添數(shù)字1產(chǎn)生。每個第2子結(jié)點的位置碼是在其父結(jié)點的位置碼前(左側(cè))添數(shù)字2產(chǎn)生。
例如:N=2層(四象層)的對應的4個結(jié)點中,第1和第2結(jié)點的位置碼是在它們的父結(jié)點1的位置碼前分別添上1和2產(chǎn)生(左分叉添1,右分叉添2),即為11、21。第3和第4結(jié)點的位置碼同樣是在它們的父結(jié)點2的位置碼前分別添上1和2(左分叉添1,右分叉添2)產(chǎn)生,即為12、22。
4、伏羲八卦整數(shù)樹的結(jié)點是二分發(fā)產(chǎn)生的,每個結(jié)點的位置碼都據(jù)有遺傳基因,可向上查到該結(jié)點的父結(jié)點至根結(jié)點位置碼,也可下推算出該結(jié)點的兩個子結(jié)點位置碼和這兩個子結(jié)點的所有無限多的的各層子結(jié)點的位置碼。
例如;在伏羲八卦整數(shù)樹的前0至4層數(shù)據(jù)結(jié)構(gòu)圖中選N=3層中間結(jié)點數(shù)為8的結(jié)點,該結(jié)點的位置碼是112。從這個結(jié)點的位置碼112可看出后兩位12是該結(jié)點的父結(jié)點的12的位置碼。還可看到這個結(jié)點的位置碼112的最后位2是該結(jié)點的父結(jié)點的12的父結(jié)點2的位置碼。
在這個該結(jié)點數(shù)為8的結(jié)點位置碼112上按照伏羲八卦整數(shù)樹的子結(jié)點位置碼二分發(fā)產(chǎn)生規(guī)則,首先在該結(jié)點位置碼112前(左側(cè))添上1產(chǎn)生該結(jié)點的第一子結(jié)點位置碼1112。再在該結(jié)點位置碼112前(左側(cè))添上2產(chǎn)生該結(jié)點的第二子結(jié)點位置碼2112。用同樣的規(guī)則還可很容易下推算出這兩個子結(jié)點的所有無限多的的各層子結(jié)點的位置碼。
5、因的各結(jié)點的位置碼就是該結(jié)點的二的冪進制數(shù),也就是各結(jié)點的位置碼的值等于該結(jié)點十進制整數(shù)值。這是伏羲八卦整數(shù)樹數(shù)據(jù)結(jié)構(gòu)優(yōu)于所有人為設(shè)計的數(shù)據(jù)結(jié)構(gòu)的特性。伏羲八卦整數(shù)樹可檢索天量數(shù)據(jù),且數(shù)據(jù)存取地址數(shù)不用查找和計算,直接等于唯一對應整數(shù)。
在伏羲八卦整數(shù)樹僅發(fā)現(xiàn)的這5種數(shù)據(jù)結(jié)構(gòu)特性,就可得到多種對天量數(shù)據(jù)快速檢索的算法。
簡單舉例:將某一需存取的數(shù)據(jù),如不是整數(shù),轉(zhuǎn)換為整數(shù)后假設(shè)為十進制數(shù)24,再將24轉(zhuǎn)換為對應的為2112,也就是在伏羲八卦整數(shù)樹上的存取位置碼,按該位置碼可有以下查找算法供參考:(請參照圖7)
算法1:因十進制數(shù)24的二的冪進制數(shù)為2112是4位數(shù),按在伏羲八卦整數(shù)樹的存取結(jié)點的二的冪進制數(shù)與該結(jié)點位置碼相同,且位數(shù)等于層數(shù)N的特性,直接在N=4層結(jié)點中順序查找或設(shè)計一個算法查找。在本例中,十進制數(shù)24的存取位置可快速查出在N=4層的第10個結(jié)點。
算法2:根據(jù)伏羲八卦整數(shù)樹的各結(jié)點對應的二的冪進制數(shù)(位置碼)據(jù)有遺傳基因特性,在已知十進制數(shù)24的二的冪進制數(shù)(位置碼)為2112時,將24的二的冪進制數(shù)(位置碼)2112最右側(cè)位值2為一個位置碼,在伏羲八卦整數(shù)樹的N=1層查到對應結(jié)點2為起始結(jié)點,再依據(jù)24的二的冪進制數(shù)(位置碼)2112右側(cè)第二位是1向左下側(cè)查到12結(jié)點,然后再依據(jù)24的二的冪進制數(shù)(位置碼)2112右側(cè)第二位是1向左下側(cè)查到112結(jié)點,最后再依據(jù)24的二的冪進制數(shù)(位置碼)2112右側(cè)第3三位是2向右下側(cè)查到2112結(jié)點,用4步就查到十進制數(shù)24的存取位置2112結(jié)點。
以上介紹的是利用伏羲八卦整數(shù)樹快速檢索天量數(shù)據(jù)的原理和簡單檢索算法,希望能給大家一個啟發(fā)。感興趣的人士可在網(wǎng)上查閱我寫的“整數(shù)樹結(jié)構(gòu)與天量數(shù)據(jù)快速檢索”一文,做更多的了解,在進行更深入的研究后,發(fā)明出更新的信息技術(shù)。
評論