幻符號已知,數(shù)值排列組合未知的數(shù)據(jù)壓縮算法
=數(shù)據(jù)壓縮算法=符號已知,數(shù)值排列組合未知=
把二進制的0,變成2,把二進制的1就當1;
1+2=3;奇數(shù)個奇數(shù)相加,再加上任意個偶數(shù),結果等于奇數(shù),偶數(shù)個奇數(shù)相加,再加上任意個偶數(shù),結果等于偶數(shù);奇數(shù)乘以奇數(shù)=奇數(shù),奇數(shù)乘以偶數(shù)=奇數(shù),偶數(shù)乘以偶數(shù)=偶數(shù);把奇數(shù)和偶數(shù)在作為次方號前面的底數(shù)時都取負值,然后(負值奇數(shù))的奇數(shù)次方=(負值奇數(shù)),(負值奇數(shù))的偶數(shù)次方=正值奇數(shù),(負值偶數(shù))的奇數(shù)次方=(負值偶數(shù)),(負值偶數(shù))的偶數(shù)次方=正值偶數(shù)。
同樣的道理,可以把二進制的0轉換為十進制的2(偶數(shù),還是素數(shù)),把二進制的1轉換為十進制的5或7(奇數(shù),也是素數(shù)),然后計算;
如0110001100,換算成2和7,就是2772227722
統(tǒng)計結果:總共有6個二進制0,四個二進制1;
加法:
2+7+7+2+2+2+7+7+2+2 = 40(記錄為全是加法)
2+7-7+2-2+2-7+7-2+2 = 4(記錄為奇數(shù)次為加法,偶數(shù)次為減法)
2-7+7-2+2-2+7-7+2-2 = 0(記錄為奇數(shù)次為減法,偶數(shù)次為加法)
2+7-7-2+2-2-7+7-2-2 = -4(記錄為N+1為加法,N+2為減法,N+3為減法,每次N增加都是加3)
2-7+7+2-2+2+7-7+2+2 = 8
(記錄為N+1為減法,N+2為加法,N+3為加法,每次N增加都是加3)
以此類推,只要進行的加法運算次數(shù)足夠多,然后規(guī)律碰撞,就能快速得知每一位的排列順序。
也可以使用六循環(huán)法:
第一循環(huán)(記錄為N+1為減法,N+2為加法,N+3為乘法,每次N增加都是加3)
2-7+7*2-2+2*7-7+2*2 = 18(優(yōu)先計算乘法)
2-7+7*2-2+2*7-7+2*2 = 16(最后計算乘法,先算加減法)
第二循環(huán)(記錄為N+1為加法,N+2為乘法,N+3為減法,每次N增加都是加3)
2+7*7-2+2*2-7+7*2-2 = 58(優(yōu)先計算乘法)
2+7*7-2+2*2-7+7*2-2 = 0(最后計算乘法,先算加減法,且不去除0)
2+7*7-2+2*2-7+7*2-2 = 126(最后計算乘法,先算加減法,且去除0)
第三循環(huán)(記錄為N+1為乘法,N+2為減法,N+3為加法,每次N增加都是加3)
2*7-7+2*2-2+7*7-2+2 = 58(優(yōu)先計算乘法)
2*7-7+2*2-2+7*7-2+2 = 196(最后計算乘法,先算加減法)
第四循環(huán)(記錄為N+1為減法,N+2為乘法,N+3為加法,每次N增加都是加3)
2-7*7+2-2*2+7-7*2+2 = -54(優(yōu)先計算乘法)
2-7*7+2-2*2+7-7*2+2 = -280(最后計算乘法,先算加減法)
第五循環(huán)(記錄為N+1為加法,N+2為減法,N+3為乘法,每次N增加都是加3)
2+7-7*2+2-2*7+7-2*2 = -14(優(yōu)先計算乘法)
2+7-7*2+2-2*7+7-2*2 = 96(最后計算乘法,先算加減法)
第六循環(huán)(記錄為N+1為乘法,N+2為加法,N+3為減法,每次N增加都是加3)
2*7+7-2*2+2-7*7+2-2 = -30(優(yōu)先計算乘法)
2*7+7-2*2+2-7*7+2-2 = -504(最后計算乘法,先算加減法)
最后通過運算法則逆推的方式,來從最終結果,確定有限的排列方式,當然這種算法也存在碰撞交叉問題,然而這卻是使用最少的運算結果數(shù)據(jù),來逆推最多的分布排列數(shù)據(jù)(能夠通過最終結果,得知結果)
記錄的時候,只需要記錄最終結果,各種條件的最終結果
當然了,還有先算加法和乘法,再算減法;先算減法和乘法,再算加法;先算加法和減法,再算乘法;以及各種擴展運算限制,加多運算量生成的結果,然后減少碰撞量,從而能夠用最少的(按照規(guī)則運算之后得到的結果)數(shù)據(jù)來表達最多的數(shù)據(jù)
理論上講,隨著算式長度的增加,碰撞交叉出現(xiàn)的次數(shù)就會越來越多;
例如:A?B?C?D?E?F?……Y?Z?AA?AB?AC?……ZX?ZY?ZZ?AAA?AAB?AAC?……………………ZZZZZZZZZZZZZX?ZZZZZZZZZZZZZY?ZZZZZZZZZZZZZZ;其中就很有可能出現(xiàn)碰撞交叉;如同MD5的碰撞破解一樣,兩者的MD5值一樣,然而內(nèi)容卻不全等。
怎么辦?
這個時候就更容易了,在什么情況下,+2出現(xiàn)過多少次;-2重選過多少次;*2出現(xiàn)過多少次;+7出現(xiàn)過多少次;-7重選過多少次;*7出現(xiàn)過多少次;+2-2出現(xiàn)過多少次,+7-7出現(xiàn)過度少次,-2+2出現(xiàn)過多少次,-7+7出現(xiàn)過多少次(加減抵消為0);(什么運算符號)(什么數(shù)值)(什么運算符號)(什么數(shù)值)各出現(xiàn)過多少次;定義(什么運算符號)(什么數(shù)值)=(一個運算小組);(一個運算小組)(一個運算小組)(一個運算小組)各出現(xiàn)過多少次;(一個運算小組)(一個運算小組)(一個運算小組)(一個運算小組)各出現(xiàn)過多少次;(一個運算小組)(一個運算小組)(一個運算小組)(一個運算小組)(一個運算小組)各出現(xiàn)過多少次;然后就是越來越長的統(tǒng)計數(shù)據(jù),用來減少碰撞交叉,以及淘汰碰撞交叉的錯誤分支。
計算的時候,把帶數(shù)據(jù)每一位中間都加上運算符號,然后運算出結果,把結果記錄為帶運算符號或不帶運算符號的數(shù)值(如果數(shù)足夠大,那么就只能使用帶運算符號來減少所占用存儲空間長度);
然后解壓縮的時候,就進行運算符號逆推,以及排列組合逆推,可如果真就可以使用量子計算機,就可以進行快速的窮舉并列運算,最終把碰撞成功的唯一結果導出(如果是多個符合結果,那么就采取更多篩選條件)(同樣的,壓縮時,就要進行解壓縮運算,不能只等到解壓縮時,才發(fā)現(xiàn)等式并不是唯一,而是有多種結果,最常見的,就是7-5=2;然而2不僅可以=7-5,還能等于100-98)。
=作者的話=
這就是單向等于邏輯的根源,比如(-2)*(-2)=(-2)^2=4;然而4開平方=(+2)和(-2)。
當?shù)仁阶銐蜷L時,或許結果就是很短很短的,然而如何通過結果來逆推等式呢?知道運算符號,然后進行填空和窮舉就可以了,只需要把最后能夠窮舉通過的結果都反饋,然后再進行抉擇去掉錯誤答案就可以了。