Я использую C ++ для проведения исследований. И мне интересно знать, как использовать функцию LLL в NTL, чтобы найти кратчайший вектор. Мой код выглядит следующим образом;
#include <NTL/ZZ.h>
#include <NTL/matrix.h>
#include <NTL/mat_ZZ.h>
#include <NTL/vector.h>
using namespace std;
using namespace NTL;
int main()
{
Mat<ZZ> B;
cin >> B;
cout << B << "\n";
long LLL(ZZ& det2, mat_ZZ& B, long verbose = 0);
cout << B << "\n";
}
Однако матрица, которую я ввожу в B, не уменьшается. Что случилось?
Я понимаю, что забыл включить правильную библиотеку, и реализация LLL не верна.
Это библиотека, которую я забыл включить.
#include <NTL/LLL/h>
Чтобы выполнить алгоритм LLL, сделайте следующее
LLL_XD(B);
Других решений пока нет …