【数学】 x∈ℕ+, y∈ℕ+, N∈ℕ+, x < yでx³+y³=Nを満たす(x, y)は1つのNに対して2通り以下?

YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

【数学】 x∈ℕ+, y∈ℕ+, N∈ℕ+, x < yでx³+y³=Nを満たす(x, y)は1つのNに対して2通り以下?

投稿記事 by YuO » 11年前

http://dixq.net/forum/viewtopic.php?f=3&t=14976 を見ていて思ったのですが,
ある自然数 (1以上の整数,以下同じ) Nを,自然数xの3乗と,xより大きい自然数yの3乗の和で表す方法が2通り以下なのは自明または証明されているのでしょうか。
質問は,2通りぴったりであることを要求しているのに,質問者や回答者は3通り以上を気にせずにプログラムを組んでいます。
3通り以上に分解できる例は自然数Nに対して存在しないことの数学的な裏付けがあるのかどうか,疑問です。
なんとなく,証明があってもそうそう知られていない気がしますが……。

ちなみに,雑ながら

CODE:

#include	

int main(void)
{
	int number;

	for (number = 3; number <= 1000000; ++number)
	{
		int x, x1, y1, x2, y2;
		int exists = 0;
		for (x = 1; x * x * x < number; ++x)
		{
			int y;
			for (y = x + 1; x * x * x + y * y * y < number; ++y)
				;
			if (x * x * x + y * y * y == number)
			{
				++exists;
				if (exists == 1)
				{
					x1 = x;
					y1 = y;
				}
				else if (exists == 2)
				{
					x2 = x;
					y2 = y;
				}
			}
		}

		switch (exists)
		{
		case 0:
			printf("%d : 分解不可\n", number);
			break;
		case 1:
			printf("%d : %d ^ 3 + %d ^ 3 のみに分解可能\n", number, x1, y1);
			break;
		case 2:
			printf("%d : %d ^ 3 + %d ^ 3 と %d ^ 3 + %d ^ 3 に分解可能\n", number, x1, y1, x2, y2);
			break;
		default:
			printf("%d : %d 通りに分解可能\n", number, exists);
			break;
		}
	}

	return 0;
}
なんてコードで検証したところ,とりあえず1000000までで3通り以上に分解できる例はなさそうですが……。
オフトピック
質問自体と直接関係しないので,こちらに書いています。10000以下であれば実際に存在しないので。


YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

Re: 【数学】 x∈ℕ+, y∈ℕ+, N∈ℕ+, x < yでx³+y³=Nを満たす(x, y)は1つのNに対して2通り以下?

投稿記事 by YuO » 11年前

ありがとうございます。
証明と言うよりは,発見の形なのですね。

N = 87539319だと題意から外れる,というのは,知識がないと難しいですね……。
もっと小さい数でもありそうな感じがするので,知識がないと一度試してから効率的なアルゴリズムで,ということになりそうな気もしますが……。