アプリ版:「スタンプのみでお礼する」機能のリリースについて

x^z+y^x=z^y
を満たす自然数の組(x,y,z)は存在しますか?

A 回答 (4件)

一見難しいかと思いきや、すぐに見つかりました。


x = 1, y = 1, z = 2で成り立ちますね。
    • good
    • 0
この回答へのお礼

一つ見つかるとたくさん見つかると思ってます。

他はどうでしょうか?

お礼日時:2016/04/10 15:39

確かにその方法で絞れば、少しは早くなるかもしれません。


しかしながら、申し訳ありませんが私はこれ以上やる気にはなれないので、
そのアイデアでご自分で改良されてみたらいかがでしょうか。

for文で回しているだけの簡単なプログラムなので、Cで書き直すのも簡単だと思います。
    • good
    • 0
この回答へのお礼

まあ、私は解析的に証明されることを望んでますが。。。

お礼日時:2016/04/10 19:19

こちらでは開けますが、一応ここにもソースコードを貼っておきましょう。


言語はPython 3です。
教えてgooの仕様か、インデントが削除されてしまうのでコピペしただけでは動きませんが…

# coding: utf-8

import sys
import itertools

m = 100 # 上限
for x, y, z in itertools.product(range(2, m), repeat=3): # 2から始める
if (x ** z + y ** x == z ** y):
print("OK: x = {}, y = {}, z = {}".format(x, y, z))
sys.exit()
print("No.")

この問題を商と余りの計算に落とし込むのは、私には不可能に思えます。
それほど複雑なコードではないので、アイデアがあるのでしたらご自分で改良されてみてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

例えば、zを法とした式を考えれば右辺は0となる。

商配列と余り配列を用意して、余りが0の時の商の和が同じになるものを探せばもっと大きな数まで検証可能では?

パイソンというと、SEをイメージしますが、Cで示されるとわかりやすいです。(計算速度を考えればパスカルですね)

お礼日時:2016/04/10 17:08

> 一つ見つかるとたくさん見つかると思ってます。


そうとは限りませんね。

プログラムを書いて試してみましたが、100まででは他に存在しないようです。
累乗は時間がかかるので、それ以上を調べるのは難しいですね。
https://ideone.com/XswsTg

実は他には存在しないのかもしれません。
証明は出来ていないのでわかりませんが。
    • good
    • 0
この回答へのお礼

残念ながらリンクを開けませんでした。

商と余りの計算に落とし込めば、計算に目盛コストを割かずに計算できませんか?

お礼日時:2016/04/10 15:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!