アプリをダウンロード
フォルダーを選び、編集前に関連ファイルを読むようアシスタントに依頼します。作業の目的と変更範囲を明確にしてください。
最大8本の方程式からなる整数係数の正方連立一次方程式を厳密な分数で解きます。必要な行交換と分数解を試し、入力を保ったまま特異な系や寸法の不一致を拒否します。
フォルダーを選び、編集前に関連ファイルを読むようアシスタントに依頼します。作業の目的と変更範囲を明確にしてください。
対応するエンドポイントを選択します。利用できるツールや回答品質は、設定したモデルとサーバーに依存します。
変更内容とコマンド出力を確認します。結果を採用する前にプロジェクトの検証を実行してください。生成コードが自動的にテスト済みになるわけではありません。
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
from fractions import Fraction
def solve_linear(matrix, rhs):
matrix, rhs = [tuple(row) for row in matrix], tuple(rhs)
n = len(matrix)
if not 1 <= n <= 8 or len(rhs) != n or any(len(row) != n for row in matrix):
raise ValueError("system.shape")
if any(type(v) is not int or abs(v) > 1000000 for row in matrix for v in row) or any(type(v) is not int or abs(v) > 1000000 for v in rhs):
raise ValueError("coefficient.range")
a = [[Fraction(v) for v in row] + [Fraction(rhs[i])] for i, row in enumerate(matrix)]
for col in range(n):
pivot = next((r for r in range(col, n) if a[r][col]), None)
if pivot is None:
raise ValueError("system.singular")
a[col], a[pivot] = a[pivot], a[col]
scale = a[col][col]
a[col] = [v / scale for v in a[col]]
for r in range(n):
if r != col:
factor = a[r][col]
a[r] = [x - factor * y for x, y in zip(a[r], a[col])]
return [row[-1] for row in a]適用前に確認. 変更内容とコマンド出力を確認します。結果を採用する前にプロジェクトの検証を実行してください。生成コードが自動的にテスト済みになるわけではありません。