第壹小說 > 腦回路清奇的主角們 > 幻如果進制就那個碰撞
  =誰是誰,為了誰?=

  1:我不知道你是誰,但我知道你為了誰(為了正義隱姓埋名)。

  2:我不知道你是誰,也不知道你為了誰(藏在黑暗中的人都干了些什么)?

  3:我知道你是誰,也知道你為了誰。

  4:我知道你是誰,不知道你為了誰(知人知面不知心)。

  =單片機級數據卡尺=以下內容如果不帶前綴,就都是十進制=

  任意一個二進制數,都可以轉化為其他進制(計算機中的二進制數,對于小數點,正負,一切非數值的內容,都是數值化了,對于存儲而言,所有都是數據,只有對于運算而言,才有數據和指令的區別)。

  使用素數進制(比如2進制,3進制,5進制,一直到499973進制,499979進制)。

  使用進制碰撞方式來統計比如十進制的999,換算成二進制就是1111100111;換算成三進制就是1101000。

  統計結果:二進制中,1出現了(十進制的8次),0出現了(十進制的2次);三進制中,1出現了(十進制的3次),0出現了(十進制的4次);十進制中,9出現了(十進制的3次)

  二進制位數(十進制的10位),三進制位數(十進制的7位),十進制位數(十進制的3位)

  然后找一個大數比如十進制的499979,換算成二進制就是1111010000100001011;換算成三進制就是221101211202。

  統計結果:二進制中,1出現了(十進制的9次),0出現了(十進制的10次);三進制中,2出現了(十進制的5次),1出現了(十進制的5次),0出現了(十進制的2次);十進制中,9出現了(十進制的4次),7出現了(十進制的1次),4出現了(十進制的1次)。

  二進制位數(十進制的19位),三進制位數(十進制的12位),十進制位數(十進制的6位)

  那么,如果是一個很大的數(比如長度為1GB的二進制數據),就可以轉換為499979進制。

  然后統計每一位(無視位的先后和大小)中各個不超過進制的數(比如二進制就是0和1,三進制就是0和1和2,十進制就是0和1和2和3和4和5和6和7和8和9;其他進制以此類推)。

  這套素數進制算法,不僅可以用于壓縮和解壓縮,還能用于快速校驗文件是否被篡改過。

  然而,隨著進制越來越大,不是每一個數都出現過(比如十進制499979中,可能所有位都只出現過5000個數,那么數數就完全不對稱了)(結論:進制越大,同一個數換算后的數位越短,進制越小,同一個數換算后的數位越長)

  =超級電腦的數據卡尺=

  第一種數據卡尺:取素數次方根和有限的小數點后100位數

  獲得一個數,直接把該數進行取N次方根。

  比如499979,取平方根的整數部分就是707,取立方根的整數部分就是79。

  一般而言,為了盡可能減少計算量,一般取二次方根都保留小數點后10位數,取三次方根都保留小數點后20位數,取五次方根都保留小數點后30位數(最高取小數點后100位數)。

  想象一下1ZB二進制長度的數,取其499979次方根,會等于多少,會不會大于1GB?

  第二種數據卡尺:取任意正整數階乘去無限接近該數值。

  一般的方法,就是A!+B!+C!……,然后A大于B大于C

  第三種數據卡尺:把數據分段落換算

  比如換算成7進制,然后填寫到7乘以7乘以7的數據方格陣列中,每一位占用一個方格,然后先統計填滿了多少個數據方格,然后把沒填滿的數據方格記錄下來(一般分為對齊最高位的填充方格位置和對齊最低位的填充方格位置),然后把每一個方格進行統計,比如對齊最高位的填充方格陣列的第20個中,出現了40個1,20個2,10個3,273個0

  比如換算成499979進制,然后填寫到499979乘以499979乘以499979的數據方格陣列中,每一位占用一個方格,然后進行統計。

  這套算法的優勢:分段落,不需要在1ZB數據中進行排列組合運算,而只需要在1GB,1MB,1KB數據中進行排列組合運算。

  當然了,使用多少位進制,都可以記錄為數據,使用什么樣的數據方格陣列,也可以自定義。

  進制碰撞,校驗碼碰撞,很快就能確認是不是解壓縮出來了源文件。

  第四種數據卡尺:校驗碼碰撞,沒的說,使用1GB校驗所有哈希值,比如MD5,比如SHA256。

網頁版章節內容慢,請下載好閱小說app閱讀最新內容

請退出轉碼頁面,請下載好閱小說app 閱讀最新章節。