幻如何让硬件处变不惊?(2)
2023-07-16 来源:百合文库
=数据压缩算法猜想=
对折算法,例如10100101(偶数位)和101010101(奇数位)。
做三种算法,分别是加法,乘法和乘方法。
0 0=0,0 1=1 0=1,1 1=10(二进制的2)
0*0=0,0*1=1*0=0,1*1=1
0^0=1,0^1=1^0=1,1^1=1
也就是结果=001,则表示两个都是0,结果等于101,则表示一个等于0,一个等于1,结果等于1011,则两个都是1
以上算法另有用途。
还有一种表达方式,把数据中分(如果奇数位,则先把中间位去掉作为原点,如果偶数位,直接中分)
比如10100101,可以记录为1010取对称(完全镜面对称)
比如101010101,可以记录为原点为1,1010取对称(完全镜面对称)
比如10101010,可以记录为1010循环,也可以记录为1010和正负取逆反(原点左边第一个和原点右边的一个互异,原点左边第N个和原点右边的第N个互异)
只需要记录一半的数据作为数据卡尺,当然了,也可以只是用整体的N分之一作为全记录数据卡尺,其他的就看特定位是互同还是互异,只是需要记录数据对齐方法,比如可以使用1KB数据作为数据卡尺,然后进行比对。
这种算法最怕有数据缺失,也就是不管是数据卡尺出问题,还是记录互异和互同的部分出问题,都会导致数据不可用,只能进行试错逆推。
对于数据压缩,这是缺点,然而对于作为一种密文防止篡改的技术,这是优点。
任意数,都可以变成算术:
7?6?5?4?3?2?1?1?2?3?4?5?6?7
先从最大数到最小数,然后从最小数到最大数。
而每一个?都可以是加法,减法,乘法,次方,这套算法对于长度不大的数据,可能压缩后长度比原数据还大,然而如果是使用很长的数呢?
其中的数如果相差不大,还能记录为:
比如9876543210123456789到9876543210123456777,那么就可以节省掉记录每一个运算符号之间的数,直接记录运算符号就可以了,一般情况下,都是00= 加法;01=-减法;10=*乘法;11=^乘方
记录了运算符号还不算,每一个运算符号都有独特的运算优先级,就如同把小括号改造成了运算优先级,在这种运算优先级中,所有符号都是同等优先级,只有被定义为更高的运算优先级,才具备更高的运算优先级。
当然了,可以把所有数都减去同一个数,然后只记录减去该数之后的差来代表该数,从而节约存储长度,比如上面的9876543210123456777-9876543210123456777=0,可以记录为0;9876543210123456789-9876543210123456777=12,可以记录为12;
对折算法,例如10100101(偶数位)和101010101(奇数位)。
做三种算法,分别是加法,乘法和乘方法。
0 0=0,0 1=1 0=1,1 1=10(二进制的2)
0*0=0,0*1=1*0=0,1*1=1
0^0=1,0^1=1^0=1,1^1=1
也就是结果=001,则表示两个都是0,结果等于101,则表示一个等于0,一个等于1,结果等于1011,则两个都是1
以上算法另有用途。
还有一种表达方式,把数据中分(如果奇数位,则先把中间位去掉作为原点,如果偶数位,直接中分)
比如10100101,可以记录为1010取对称(完全镜面对称)
比如101010101,可以记录为原点为1,1010取对称(完全镜面对称)
比如10101010,可以记录为1010循环,也可以记录为1010和正负取逆反(原点左边第一个和原点右边的一个互异,原点左边第N个和原点右边的第N个互异)
只需要记录一半的数据作为数据卡尺,当然了,也可以只是用整体的N分之一作为全记录数据卡尺,其他的就看特定位是互同还是互异,只是需要记录数据对齐方法,比如可以使用1KB数据作为数据卡尺,然后进行比对。
这种算法最怕有数据缺失,也就是不管是数据卡尺出问题,还是记录互异和互同的部分出问题,都会导致数据不可用,只能进行试错逆推。
对于数据压缩,这是缺点,然而对于作为一种密文防止篡改的技术,这是优点。
任意数,都可以变成算术:
7?6?5?4?3?2?1?1?2?3?4?5?6?7
先从最大数到最小数,然后从最小数到最大数。
而每一个?都可以是加法,减法,乘法,次方,这套算法对于长度不大的数据,可能压缩后长度比原数据还大,然而如果是使用很长的数呢?
其中的数如果相差不大,还能记录为:
比如9876543210123456789到9876543210123456777,那么就可以节省掉记录每一个运算符号之间的数,直接记录运算符号就可以了,一般情况下,都是00= 加法;01=-减法;10=*乘法;11=^乘方
记录了运算符号还不算,每一个运算符号都有独特的运算优先级,就如同把小括号改造成了运算优先级,在这种运算优先级中,所有符号都是同等优先级,只有被定义为更高的运算优先级,才具备更高的运算优先级。
当然了,可以把所有数都减去同一个数,然后只记录减去该数之后的差来代表该数,从而节约存储长度,比如上面的9876543210123456777-9876543210123456777=0,可以记录为0;9876543210123456789-9876543210123456777=12,可以记录为12;