2017-11-06 9 views
1

与えられた範囲の解をx²+y²=z²に求める最も複雑なアルゴリズムは何ですか?x^2 + y^2 = z^2の解を見つけるのに最高の複雑さ

x、yおよびzは整数であり、範囲は約[0,10^6]である。

私ができる最良の方法は、すべてのxとすべてを yで反復し、x²+y²をハッシュに格納し、可能なすべてのzを繰り返し、z²がハッシュに含まれているかどうかを確認することです。

+0

@skr:stackoverflowにはmathjaxがありません... – Chris

+0

@Chris彼はロジックにロジックが必要なので、プログラムで使用したアルゴリズムの時間が短くて済みます。 Andreiはプログラミングに関連するハッシュ、反復について言及しています。 – skr

+0

@skr:私が言っていることを誤解しているかもしれないと思います...あなたはmathjaxである様々なものの周りに '$'を置いて質問を編集しました。私はスタックオーバーフローでmathjaxが動作しないことを知らせていました。私は質問自体にコメントをしていませんでした。ちょうどあなたの編集が厄介なものになってしまったので、それを巻き戻しました。 – Chris

答えて

1

xが奇数であり、yが偶数であるとみなすことができます。両方もxとyとの

  • ソリューションはそれを気付かすることによって得ることができる。

    X = 2×。 y = 2y1; z = 2z1ここで、x1、y1、z1も解です。xとyの両方が奇数ならば、x^2 + y^2は剰余の2を法とする4を与えることは容易に証明できます。完璧な広場。明らかに

  • (X、Yは、Z)(X、Y、Z)も、あなたが4回以下のxの可能性とyを考慮し、この最適化ソリューション

であるだけにして解決策である場合zの奇数値(2倍少ない)。

+0

私はx oddとyよりもさらに進んだと思っても、彼らには共通の要因がないと言うことさえできます。例えば、ポイントテスト9,12はありません。すでに3,4が動作していることがわかっているからです。彼らはあなたがテストしているよりも共通の要素を持っていれば、もっと時間を費やすことになるかどうかはわかりません...同じように、ソリューションを検出してスキップするのではなく、 ? – Chris

+0

@Chris - それの価値があるのは間違いなく後者です。私はまだ母性的な数字だけを唱える方法を考えようとしていますが、 –

関連する問題