コード例 #1
0
ファイル: matPow.cpp プロジェクト: bimmlerd/nme
int main(void) {
    // Check/Test with provided, complex, matrix
    unsigned int n = 3; // size of matrix
    unsigned int k = 9; // power
    
    double PI = M_PI; // from math.h
    std::complex<double> I = std::complex<double>(0,1); // imaginary unit
    
    Eigen::MatrixXcd A(n,n);
    
    for(unsigned int i = 0; i < n; ++i) {
        for(unsigned int j = 0; j < n; ++j) {
            A(i,j) = exp(2. * PI * I * (double) i * (double) j / (double) n) / sqrt((double) n);
        }
    }
    
    // Test with simple matrix/simple power
//     Eigen::MatrixXd A(2,2);
//     k = 3;
//     A << 1,2,3,4;
         
    // Output results
    std::cout << "A = " << A << std::endl;
    std::cout << "Eigen:" << std::endl << "A^" << k << " = " << A.pow(k) << std::endl;
    matPow(A, k);
    std::cout << "Ours:" << std::endl << "A^" << k << " = " << A <<std::endl;
}
コード例 #2
0
ファイル: domino_1.cpp プロジェクト: WLBF/OJ
int main(){
    
    int n;
    LL a[N][N];
    memset(a, 0, sizeof(a));
    while (scanf("%d", &n)){
       for (j = 0; j < N; j++)
           a[7 - j ][j] = 1;
       a[7][6] = 1;
       a[6][7] = 1;
       a[7][3] = 1;
       a[3][7] = 1;
                       
       matPow(a, n);
       printf("%lld\n", a[7][7] % MOD);
    }
}