determinant를 구하기가 너무 어렵네요...그거하고 big integer 구현하는게 이 문제의 핵심인것은 알겠는데, big integer야 뭐 struct로 만들던가 하면되겠는데 determinant를 재귀로 구하려고 해도 당장 n=4만 되어도 16*16행렬이 되어버려서, 15! 경우의수가 생겨버리네요. 물론 0이 많아서 0일경우 제외한다고 하더라도 문제가 많아보입니다.

비전공자라 선형대수학을 잘 모르는데, 인터넷 찾아보니 삼각행렬로 만드는 가우스 소거법이 있기는한데, 푸신분들은 어떻게 푸신건가요? 재귀로 determinant 직접 구하신건지, 아니면 삼각행렬 만들어서 주대각선 성분을 그냥 곱한건지 참 막막하네요 ㅜㅜ

appa   1년 전

전 determinant를 cofactor expansion으로 구했습니다.

여인자 전개해도 경우의수가 너무 많이 나오지 않나요? ㅜㅜ 여튼 답변 감사드립니다

appa   1년 전

Row operation 중 한 행의 k배를 다른 행에 더하는 연산을 행렬 A에 적용하여 행렬 B가 나오더라도 determinant는 변하지 않는다는 성질을 이용하면 구할 수 있었던 것 같습니다.

말씀하신 row operation 의 K배 더하는 연산이 가우스소거법이네요 ㅎ 가우스소거로 알고리즘 짜니 풀리네요. 큰도움 감사합니다 ^^

appa   1년 전

네ㅎㅎ 그 행렬의 꼴이 다 n*n 꼴이라서 전 reduced echelon form 만든 다음에 대각성분만 다 곱했었어요ㅎ

댓글을 작성하려면 로그인해야 합니다.