000
27.04.2005, 12:56 Uhr
~geckoo
Gast
|
hy, ich muss ein programm scheiben, was die MatrixPotenz k von A[N][N] rekursiv berechnet und in C[N][N] schreibt. Also mein UnterProgramm sieht wie folgt aus:
C++: |
include <iostream> using namespace std;
. . .
void mat_pot(long A[N][N], int k, long C[N][N]) { if (k < 2) C=A; else { long S[N][N]; long T[N][N]; //N ist weiter oben als 4 deklariert if (k % 2 == 0) { mat_pot(A, k/2, S); mat_mat_prod(S,S,C); } else { mat_pot(A,k/2,S); mat_mat_prod(S,S,T); mat_mat_prod(T,A,C); } }
|
wenn ich das Programm jetzt kompiliere, und mein Unterprogramm aufrufe bekomme ich ganz falsche Werte im Array(Matrix) heraus. Das komischste ist daß wenn ich ein k mitsende das < 2 ist, gibt er mir als C trotzdem jedes mal die 2er potenz der Matrix A heraus. Kann mir bitte jemand helfen? danke mfg |