結果
問題 | No.328 きれいな連立方程式 |
ユーザー |
![]() |
提出日時 | 2015-12-22 01:51:38 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 31 ms / 2,000 ms |
コード長 | 1,458 bytes |
コンパイル時間 | 115 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-09-18 18:25:18 |
合計ジャッジ時間 | 1,607 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
def gauss_jordan_elimination(Array):# N行M列のArrayN = len(Array)if N == 0:return (True, Array)else:M = len(Array[0])A = []for i in range(len(Array)):A.append(Array[i][:])pivot = 0L = min(N, M)while pivot < L:pivot_v = A[pivot][pivot]pivot_row = pivotfor i in range(pivot + 1, L):v = max(A[i][pivot], -A[i][pivot])if pivot_v < v:pivot_row = ipivot_v = vif pivot_row > pivot:for i in range(M):A[pivot][i], A[pivot_row][i] = A[pivot_row][i], A[pivot][i]if pivot_v == 0:return ('False', A)inv_pivot = 1 / A[pivot][pivot]A[pivot][pivot] = 1for i in range(pivot + 1, M):A[pivot][i] *= inv_pivotfor i in range(N):if i == pivot:continuet = -1 * A[i][pivot]A[i][pivot] = 0for j in range(pivot + 1, M):A[i][j] += t * A[pivot][j]pivot += 1return (True, A)if __name__ == '__main__':c = list(map(int, input().split()))a = [[c[1], -c[0], c[2]], [c[2], -c[1], c[3]]]state, a = gauss_jordan_elimination(a)if not state:print(state)print(*a, sep='\n')else:if a[0][2]**2 - 4*a[1][2]<0:print('I')else:print('R')