第495章 幻數據壓縮算法猜想1


  =數據壓縮算法=速記算法=

  遞增素數之間,可以使用加法,得出相對小的數,可以用乘法,得出相對大的數,可以用乘方號,得出很大很大的數。

  當使用特定長度把一個大數據分割成N個小片段時,就可以進行統計,比如全體相加,然後除以總數得到全局平均數。

  然後使用1KB的平均數,1MB的平均數,1GB的平均數作為比大小基準。

  然後還有特定數(比如出現了一次以上的多次數)(比如只出現了一次的一次數)(比如出現的最大值)(比如出現的最小值)。

  

  現在的問題就是,統計能夠獲得數據的被過濾掉了很多信息的被壓縮後的數據,如何使用統計獲得的數據,來逆推原始數據(包括各種統計的先後順序)(當然,因為數據的缺失,導致必須使用試錯方式來實現)。

  在處理大數據時,如何減少解壓縮時試錯次數,就是大數據壓縮專用算法的重難點。

  [示例]

  如果有一個二進位數1010010010011100110001000100010,統計出其二進位的1總共有12個,二進位的0總共有19個;轉換為八進位為12223461042,統計出其八進位的0總共出現了1次,八進位的1出現了2次,八進位的2出現了4次,八進位的3出現了1次,八進位的4出現了2次,八進位的6出現了1次;轉換為十進位為1380868642,統計出其十進位的0出現了1次,十進位的1出現了1次,十進位的2出現了1次,十進位的3出現了1次,十進位的4出現了1次,十進位的6出現了2次,十進位的8出現了3次(當然了,為了加速碰撞,一般都是使用素數進位的方式,而不是使用這種方式,作者用這種方式示例,只是為了方便使用微軟自帶的程式設計師計算器換算進位,從而進行統計),那麼接下來,就需要通過進位碰撞的方式,來逆推根據統計得出的原始數據。

  當然了,也可以使用MD4,MD5和其他的哈希值生成算法,用於快速生成哈希值,以及記錄上大小,然後是二進位的0和1,然後是八進位,16進位(一般都採取2的正整數次方進位的方式,來加速快速壓縮時的速度,換算更快)。

  另外還有一種快速碰撞的方式,使用大於X的(Y+1次方),小於X的Y次方的方式。

  第一次比大小範圍:

  示例:取X=16;Y=18;

  16^19=75,557,863,725,914,323,419,136

  16^18=4,722,366,482,869,645,213,696

  第二次比大小範圍:

  示例:取X=15;Y=7;

  15^8=2,562,890,625

  15^7=170,859,375

  當然了,因為作者並沒有使用16^19-16^18,然後再把結果進行開15次方,然後再進行篩查,可能就會導致第二次和第一次的相關度不高。

  一個二進位數據根據位數,可以表達多少數值?

  1位二進位,有兩種可能,1和0。

  2位二進位,有四種可能,00,01,10,11。

  16位二進位,有2的16次方種可能,然而一個數據本身使用這麼多位是一種浪費。

  也就是說,一個16位二進位所表達的數,是一個固定數,是大於或等於0,小於2的16次方+1。

  就比如說,一個1ZB大小的數據,只要其本身是固定的,那麼就註定大於或等於0,然後小於2的多少次方來著???+1。

  表達固定的數,並不一定需要使用到很長的長度。

  比如2的987654321次方,可以是一個很大的數,其換算成二進位,會占用多大的存儲空間?然後是不是可以逆推為算術內容:2的987654321次方?

  問題就是,並非所有的數,都是規律數,都可以使用A的B次方+C乘以D+E階乘方式正好等於該數,也就導致往往只能採取使用比大小的方式,無限近似,大於某個最接近該數的小數,小於某個最接近該數的大數。

  比如說,想要記錄一個5,那麼在只能使用素數的表達方式時,就可以記錄為該數大於3,小於7。

  使用大於和小於之後,就可以獲得一個數據範圍,該範圍內可能包含有有數的可能性,接下來的方法,就是把這個可能性減少,比如說(3+7)/5=2,則表示這個數正好處於大於和小於的中間值,比如說(3+7)/4=2.5,則表示這個數正好大於大於和小於的中間值;以此類推;

  設定一個數為未知數B,A大於B小於C。

  那麼就可以取近似值(A+B)/C=D

  一般情況下,D都是帶有小數的,那麼把D的小數去掉,那麼D的整數部分就可以作為第二輪的最小值,D+1就可以作為第二輪的最大值。

  取(A+B)/C=區間值1(也就是C更靠近A,還是更靠近B)。

  (A-B)/(B-C)=區間值2

  (A+C)/B=區間值3

  (B+C)/A=區間值4

  還有一種固定數大於小於法,就是A+→B←+C}總長度為多少位,特定數大於某個可以用循環速記法記錄的數,小於某個可以用循環速記法記錄的數。

  然後就是使用特定算法生成一個數,該數大於B,然後使用特定刷房生成一個數,該數小於B。

  示例:3*7=21;4*5=20;3*7大於B小於4*5;那麼就可以獲得該數百分之八十的近似值,然後再使用不斷精準的繼續用比大小法接近的方式,獲得。

  比如3.1415926

  第一次比大小:4大於圓周率大於3

  第二次比大小:3.14小於圓周率小於3.15

  第三次比大小:3.141592小於圓周率小於3.141593

  比大小之後,就是使用一個算術,來生成更接近的比大小精準度。

  比如第一次比大小,大和小之間相差2的16次方,第二次比大小,大和小之間相差2的14次方,第三次比大小,大和小之間相差2的12次方,以此類推,就能快速還原出原始數據。

  1TB的固定數據,可以使用1GB的算法來生成,1GB算法當做固定數據,就能使用1KB的算法來生成,這就是TB2KB算法的原理。


章節目錄