我正在学习Hill Ciphe,需要找到矩阵的逆矩阵来解密我的密文。
我用Google搜索并发现了一些excellent material on matrices。他们甚至让你下载整个程序的源代码。
为了测试程序,我想输入这个矩阵(直接取自Hill Cipher wiki)
并实现此矩阵的逆矩阵
我创建了一个示例程序,它输入以下矩阵,但矩阵的逆矩阵得到非常奇怪的值,如0.158730,-0.7777777
我不认为该程序的源代码存在问题,因为该材料在codeproject上受到高度评价。我不明白为什么我没有得到如图所示的预期逆矩阵值。
我的示例代码
您可以下载完整代码here
package inverse;
public class Inverse {
public static void main(String[] args)
{
Matrix arr = new Matrix(3,3);
arr.setValueAt(0, 0, 6.0);
arr.setValueAt(0, 1, 24.0);
arr.setValueAt(0, 2, 1.0);
arr.setValueAt(1, 0, 13.0);
arr.setValueAt(1, 1, 16.0);
arr.setValueAt(1, 2, 10.0);
arr.setValueAt(2, 0, 20.0);
arr.setValueAt(2, 1, 17.0);
arr.setValueAt(2, 2, 15.0);
Matrix mat = new Matrix(3,3);
double determinant=0;
try
{
mat = MatrixMathematics.inverse(arr);
}
catch (NoSquareException e)
{
}
int x = 10;
}
}