第429章 幻如果進位就那個碰撞
=誰是誰,為了誰?=
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。
自然語言編程就這樣,很容易,很簡短,然而如果換算成高級語言,怕是要百萬行代碼吧?換算成彙編語言,怕事要千萬億行代碼吧?之前說過,英文就是52進位(26個英文字母,區分大小寫),然而中文就是很高很高的進位。
寫在最後:既然人工智障能夠有虛擬機,那麼有沒有一種可能?創造一個人工智障專用的硬體級虛擬機,然後讓人種智障,在虛擬機裡面隨機變成,比如從最大長度為4KB的程序二進位編程,然後到最大長度為1GB的程序二進位編程,用個位數+1的窮舉法來編程,怕不是所有的程序猿都要丟了工作崗位哦。
有打火機,有核聚變,為何還要去強行追求鑽木取火?