不定方程式(ディオファントス方程式)

YouTubeのおすすめ動画でたまたま「整数問題」として以下の問題が出てきた。

a^2 + b^2 + c^2 = 292を満たす自然数(a, b, c)を求めよ

おとなになったら、ノートにガリガリ書いて解いたりしないよ。
という訳で、Python(Sympy)で考えると、
これは、不定方程式なので、sympy.solveでは解けないが、
ディオファントス方程式なので、ソルバを使えば解ける。

import sympy as sym
from sympy.abc import a, b, c, n
from sympy.solvers.diophantine import diophantine


f = sym.Eq(a**2 + b**2 + c**2, n)
diophantine(f.subs(n, 292))
{(0, 6, 16), (2, 12, 12)}

この組み合わせになるので、9通りの答えになる。

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください