Problem s chain Matrix Multiplication

Programovacie jazyky, rady, poradňa...
Albert46
Novice
Novice
Príspevky: 1
Registrovaný: 15 nov 2020, 22:36

Problem s chain Matrix Multiplication

Príspevok od používateľa Albert46 »

Dobrý deň môj kod vyzera nejako takto

Kód: Vybrať všetko

int chainMatrixMultiplication(int *r, int n) {
int m[n+1][n+1];
    int i,j,k,L,q;
	for(i = 1; i<=n; i++)m[i][i] = 0;
	for(L=2;L<n;L++){
		for(i=1;i<n-L+1;i++){
			j=i+L-1;
			m[i][j]=INT_MAX;
			for (k=i;k<=j-1;k++){
				q=m[i][k]+m[k+1][j]+r[i-1]*r[k]*r[j];
				if(q<m[i][j]){
					m[i][j]=q;
				}
			}
		}
	}

	return m[1][n-1];
}

int main(int argc, char *argv[])
{
    printf("\n\nMINIMALNY POCET OPERACII PRI NASOBENI MATIC:\n");
    int rozmery[]={ 10, 20, 50, 1 ,100 };
    for(i=1;i<=4;i++)printf("    M%d (%3d,%3d)\n",i,rozmery[i-1],rozmery[i]);
    printf("Vysledok: %d\n\n",chainMatrixMultiplication(rozmery,4));

    printf("\n");
    return 0;
}
Lenže mam problém s tým že vysledok ma byť 2200 a mne stale výchadza iné číslo neviete kde moôže byť chyba?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8215
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Problem s chain Matrix Multiplication

Príspevok od používateľa harrison314 »

Ak dostavas stale ine hodnoty, tak si pravdepodobne neinicializoval premenu alebo cast pole, s ktorej citas.
Napísať odpoveď