您可以遍历来判断是否对称
语法为vb.net
Sub checkSym(ByVal a As Array)
Dim i As Integer = ubound(a, 1)
Dim j As Integer = ubound(a, 2)
If i <> j Then GoTo NotSym
Dim n As Integer = 0
Dim k As Integer = 0
While n <= i
k = 0
While k <= i
If a.getValue(n, k) <> a.getValue(i - n, i - k) Then GoTo NotSym
k = k + 1
End While
n = n + 1
End While
Msgbox("对称")
Exit Sub
NotSym:
Msgbox("不对称")
End Sub
如果您的矩阵过大不可遍历的时候可以考虑随机数算法。
Sub checkSym(ByVal a As Array)
Dim i As Integer = ubound(a, 1)
Dim j As Integer = ubound(a, 2)
If i <> j Then GoTo NotSym
Dim n As Integer = 0
Dim k As Integer = 0
j = 0
While j <= 1000 '这里1000表示检验次数,次数越多准确性越高然而耗时越长
k = Math.Round(VBMath.Rnd * i, 0)
n = Math.Round(VBMath.Rnd * i, 0)
If a.getValue(n, k) <> a.getValue(i - n, i - k) Then GoTo NotSym
j = j + 1
End While
Msgbox("可能对称")
Exit Sub
NotSym:
Msgbox("不对称")
End Sub
希望有所帮助