第494章 幻數據壓縮算法猜想
=數據壓縮算法=循環頭部兼或尾部餘數補全算法=
[規則]
1:定義一個特定長度來分割整個被壓縮文件。
𝐒𝐓𝐎𝟓𝟓.𝐂𝐎𝐌提醒您查看最新內容
2:定義一系列的特定長度特定內容的比對大小數據。
3:統計被壓縮文件總共有多少個二進位0和二進位1;統計被壓縮文件換算成17進位,有多少個0到9,A到G;統計被壓縮文件換算成十進位三位數的素數進位,各有多少個???;統計被壓縮文件換算成十進位四位數的素數進位,各有多少個???;統計被壓縮文件換算成十進位五位數的素數進位,各有多少個???;以此類推,文件越大,換算的進位數量越多。
[示例]
被壓縮文件:1001010001000011000110111011101111011101110111011101110111011101110111011101110110100100111001
按照7位來分割,就分割成了
1001010
0010000
1100011
0111011
1011110
1110111
0111011
1011101
1101110
1110111
0111011
1011010
0100111
001
記錄尾數是001(不足7位)
然後就是設定特定長度特定內容的比對大小數據:
常見的→01←+0(→←中間的內容,就是指特定數循環,比如→01←就是0101010101……一直循環下去,直到正好補充完數位,如果沒有補充完數位,就是需要有一個餘數數據+?)
七位數的→01←+0就是0101010;
十一位數的→01←+0就是01010101010;
還有一種用法?+→*←(這裡按照通配符的方式定義;?表示只有一位的任意值;*表示有等於或大於一位的任意值)
算法表示通則:數值A+→數值B←+數值C
其中數值A+表示開頭以什麼為開頭,然後中間的→數值B←表示以什麼為中間的循環數,後面的+數值C表示以什麼為結尾;
十三位數的0+→01←+10就是0010101010110;
十九位數的0+→01←+10就是0010101010101010110;
常用的→數值B←的取值:
二位數:00,01,10,11;
三位數:000,001,010,011,100,101,110,111;
以此類推,然而並非所有的取值都會用到,只有用到時,才註冊,沒用到時,不註冊;
註冊表:
定義:
七位數的→01←+0是A;0101010
七位數的→10←+0是B;1010100
七位數的→101←+0是C;1011010
七位數的→010←+0是D;0100100
0101010A
1010100B
1011010C
0100100D
1001010被註冊表定義為大於A,小於B;3個1,4個0;
0010000被註冊表定義為小於D;1個1,6個0;
1100011被註冊表定義為大於C;4個1,3個0;
0111011被註冊表定義為大於A,小於B;5個1,2個0;
1011110被註冊表定義為大於C;5個1,2個0;
1110111被註冊表定義為大於C;6個1,1個0;
0111011被註冊表定義為大於A,小於B;5個1,2個0;
1011101被註冊表定義為大於C;5個1,2個0;
1101110被註冊表定義為大於C;5個1,2個0;
1110111被註冊表定義為大於C;6個1,1個0;
0111011被註冊表定義為大於A,小於B;5個1,2個0;
1011010被註冊表定義為等於C;4個1,3個0;
0100111被註冊表定義為大於D,小於A;4個1,3個0;
[示例完畢]
為了節省篇幅,以及避免作者使用自然人腦來進行比大小這種運算,而且使用的還是二進位,為了避免麻煩和出錯,也就沒有使用什麼三百位的二進位作為註冊表,然而計算機完全可以通過這套算法,生成1KB大小的比大小篩選註冊表,從而加速解壓縮速度,以及碰撞速度。
當然了,如果是使用1GB大小的比大小篩選註冊表,就可以用於ZB級別的數據快速解壓縮了。
使用循環規則,把一個數控制在儘可能小的範圍內,然後使用各種進位的轉換,來逆推出其原本是什麼數,減少運算次數同時,也加快解壓縮速度;減少了大量的無用但必須的運算(試錯運算)。
學編程和做編程,如果不是準備做藝術類的應用程式(比如三維內容顯示在二維內)(比如把二維矢量圖記錄為數據)(藝術類應用程式也或多或少的接觸到數學),基本都是純數學,怎麼現在的編程,都不怎麼關注數學了?是我坐井觀天了麼?還是編程已經起源於數學,而又超越了數學???