基于逻辑运算的多维数据全组合编码算法研究
扫描二维码
随时随地手机看文章
引言
一般情况下,在编写程序时,经常会遇到这样一个问题,那就是多路条件的分支转移。而对于多个条件的组合判断,则多使用条件判断语句。此时,基本上都需要一个系统的、结构简单的多路条件的分支转移算法。
1 多条件组合编码算法例程
下面是一段多条件组合的算法例程:
以上(算法1与算法2)两例只是3个条件的全组合,如果组合条件更多,那么用上述结构编写的程序将呈2的指数倍增加,而且可读性差。对于这样的程序,通常需要一个系统的、简单的、结构化的多路条件的分支转移算法。
2 多维数据全组合编码公式
对于多维数组Aw%中任意元素Ar的权重:
这样,可用以下程序进行判断:
3 多条件组合编码算法的改进
经过多条件的组合编码算法可对多路分支的转移条件进行编码,因为判定条件只有两种状态true和false,因而对条件变量a,b,c编码如下:
a,b,c被定义为一维数组,则m=l,n1=3。a为A1,b为A2,c为A3。
由于a,b,c只有true和false,因此,根据式(3),有:
这样,根据Gm的编码值,就可以得到全条件组合,而算法2可写为:
算法3:
Select Case Code
Case0
处理1
Case1
处理2
Case2
处理3
Case3
处理4
Case4
处理5
Case5
处理6
Case6
处理7
Case7
处理8
End Select
可见,经过改进的程序(如算法3)的结构就会变得十分简单。
4 多维数据的合成与应用
对于三维数组处a3,4,5根据式(3):
这样,根据式(1),有:
其他元素为0,其权重也为0。
而根据式(2):
如果要判断A1,2,2是否为真,则应用式(6),有:
如果要判断A2,4,2是否为真,应用式(6),有:
5 矩阵数据的合成处理
对于矩阵
Ccode矩阵是A矩阵与B矩阵根据公式得到的。也可以直接用Ccode矩阵分解出A矩阵与B矩阵,即:
最终可得:A=Az,B=Bz,所得到的Az、Bz与原来的A、B相等。
根据以上算法可以将多个相同的矩阵通过Ccode矩阵来表示,同时只需要用Ccode。矩阵就可得到原来的多个矩阵。故此可见,此算法可用于矩阵的合成与分解。
6 结语
多维数据全组合编码算法利用的是逻辑代数二进制的位与运算,能够对任何进制数据进行变形,也能够对一维数组进行合成与分解,还能够对高维数组进行多样合成与分解。多维数据全组合编码算法可应用于改进程序结构、改善存储结构、隐蔽数据信息、以及矩阵的合成与分解等方面。