0
글쎄, 이것은 정말로 두통을주고 있습니다. NxN 결정자를 계산하기 위해 행렬 결정 함수를 만들고 있는데, 재귀를 사용하고 있습니다. 로직이 정상적으로 작동하지만 최종 값을 올바르게 계산할 수 없습니다. 여기 NxN 순환 C를위한 Computing Array Determinant C#
는 매트릭스 결정 요인에 대한 내 코드입니다 : P 방법이 작동ublic static double[,] fillNewArr(double[,] originalArr, int row, int col)
{
double[,] tempArray = new double[originalArr.GetLength(0) - 1, originalArr.GetLength(1) - 1];
for (int i = 0, newRow = 0; i < originalArr.GetLength(0); i++)
{
if (i == row)
continue;
for (int j = 0, newCol=0; j < originalArr.GetLength(1); j++)
{
if (j == col) continue;
tempArray[newRow, newCol] = originalArr[i, j];
newCol++;
}
newRow++;
}
return tempArray;
}
:
public static double determinant(double[,]array){
double det=0;
double total = 0;
double[,] tempArr = new double[array.GetLength(0) - 1, array.GetLength(1) - 1];
if(array.GetLength(0)==2)
{
det = array[0, 0] * array[1, 1] - array[0, 1] * array[1, 0];
}
else {
for (int i = 0; i <1; i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
if (j % 2 != 0) array[i, j] = array[i, j] * -1;
tempArr= fillNewArr(array, i, j);
det+=determinant(tempArr);
total =total + (det * array[i, j]);
}
}
}
return det;
}
및 fillNewArr 방법에 대한이 배열을 정돈하는 단지 방법입니다, 방법은 다음과 같다 "가정"하지만 최종 결과는 올바른 방식으로 계산되지 않았으므로 그 이유는 무엇입니까?
× 4 배열 예 : 광산 104 동안
{2 6 6 2}
{2 7 3 6}
{1 5 0 1}
{3 7 0 7}
최종 결과가 -168되어야!
최종 결과는 무엇입니까? – deathismyfriend
@deathismyfriend이 (가) 코드를 업데이트했습니다. 확인하십시오. – WT86