1

関数から最初の完全な正方形を見つける方法: f(n)=An²+Bn+C? BとCが与えられます。A、B、C、n は常に整数で、A は常に 1 です。問題は n を見つけることです。

Example: A=1, B=2182, C=3248

最初の完全な正方形の答えは n=16 ですsqrt(f(16))=196

私のアルゴリズムは n をインクリメントし、平方根が整数かどうかをテストします。

このアルゴリズムは、B または C が大きい場合、答えを見つけるのに n 回の計算が必要になるため、非常に遅くなります。

この計算をより速く行う方法はありますか? 答えを導き出す簡単な公式はありますか?

4

1 に答える 1

10

あなたが探しているのは、一般的な二次ディオファントス方程式1の特別な場合の整数解です。

Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0

あなたが持っている場所

ax^2 + bx + c = y^2

ここA = a, B = 0, C = -1, D = b, E = 0, F = cabcは既知の整数であり、未知のものを探してxおりy、この式を満たすようにします。これを認識すると、この一般的な問題に対する解決策は豊富にあります。Mathematica はそれを行うことができ( を使用)、ソース コードと解法の方法の説明を含む1 つの実装をここReduce[eqn && Element[x|y, Integers], x, y]で見つけることさえできます。

1 : これは円錐曲線として認識されるかもしれません。それはそうであり、人々は何千年もの間それらを研究してきました. そのため、それらに対する私たちの理解は非常に深く、あなたの問題は実際には非常に有名です. それらの研究は数学の非常に奥が深く、今でも活発な分野です

于 2012-02-02T15:40:11.310 に答える