◆北海道の高校生 ファージ さんからの解答。
BASICで簡単なプログラムを組んで1~10000まで調べてみました。
window 1 for n= 1 to 10000 a&=n^3+(n+1)^3 b!=sqr(a&) c=b! if b!=c then PRINT n next n do until mouse(_down) endあれ、n=1 の時しか成立しない。
◆埼玉県 100ファット さんからの解答。
ファージさんと同様にBASICでプログラムを製作して算出してみました。
10 FOR n=1 TO 10000000 20 LET a=n^3+(n+1)^3 30 LET b=SQR(a) 40 IF INT(b)=b THEN 50 PRINT n 60 END IF 70 NEXT n 80 END1000万桁まで計算したところ、下記のn数でもこの方程式は成立することがわかりました。
1 930867 983611 1028011 1244610 1361548 1434128 1608240 1965595 ・・・・・(以下略)全ての解はこちらです。
●青木コメント
誤差があるので、確信がないのですが、どなたか確認していただけませんか。
残念ながら、n=930867については、
n3+(n+1)3=(2n+1)(n2+n+1)=1861734・866514302557となり、
1861734=2・3・7・19・2333,
866514302557=103・2089・4027171なので、
n3+(n+1)3は平方数にならないと教えていただきました。
他の数についても見通しは暗そうですね。
◆愛知県 Y.M.Ojisan さんからのコメント。
100ファットさんの解答は見たところ、10進BASICを15桁(JIS)モードで使われています。
このため、100000004は29桁となり、桁あふれして正確な計算ができていません。
1000桁モードで実行すれば少なくともこの範囲では「1と2」以外は解がないはずです。
ただし、現状のプログラムでは特にルートの計算に多大な時間を要し、最後まで到達するには相当の時間を必要とするでしょう。
【高速プログラムで探査】
下記のプログラムで Nとして1を除き 1.75×1031を超える辺りまで存在しないことを確認しました。
なお、10進BASICの2進モードで実行します。
M8をもっと大きくして計算するには10進モードにする必要があります。
LET RR3=1/SQR(SQR(3.0)) LET M8=2^26 FOR ST=1 TO 5 STEP 4 FOR P1=ST TO M8 STEP 6 LET P2=1+INT(RR3*P1) IF MOD(P2,2)=1 THEN LET T2=MOD(P2*P2,M8) LET T2=MOD(T2*T2,M8) LET T1=MOD(P1*P1,M8) LET T1=MOD(T1*T1,M8) LET TT=MOD(T2*3-T1-2,M8) IF TT=0 THEN PRINT "Pass M8";M8 LET T2=MOD(P2*P2,M8-1) LET T2=MOD(T2*T2,M8-1) LET T1=MOD(P1*P1,M8-1) LET T1=MOD(T1*T1,M8-1) LET TT=MOD(T2*3-T1-2,M8-1) IF TT=0 THEN LET N=(3*((P1*P2)^2)-1)/2 PRINT "Find N=";N,"AT P1,P2=";P1;P2 END IF END IF END IF NEXT P1 PRINT "END for Start=";ST LET P1=P1-6 LET N=(3*((P1*P2)^2)-1)/2 PRINT "Checked TO N=";N,"AT P1,P2=";P1;P2 NEXT ST END【プログラムの根拠】
始めの整数をn≧2として考えます。
また、4は平方数なので
4(n3+(n+1)3)=(2n+1)((2n+1)2+3)が平方数であるかを吟味します。
n≧2において
(2n+2)2>((2n+1)2+3)>(2n+1)2なので
((2n+1)2+3)は平方数ではありません。
従って、(2n+1)と((2n+1)2+3)は何らかの公約数をもつ必要があります。
互助法によりGCD(2n+1、(2n+1)2+3)=3です。
従って、2n+1と(2n+1)2+3は3の倍数(3を因数に持たない)に限られます。
そこで、2n+1=3m m:奇数>1 とおけば
(2n+1)2+3=3(3m2+1)です。
次にGCD(m、3m2+1)=1なので、mと3m2+1はそれぞれ平方数でなければなりません。
そこでさらに、 m=p2 p:奇数>1とおきます。
このとき 3p4+1=q2でなければなりません。
pは3以上の奇数なので、q:偶数≧16 です。
3p4=(q-1)(q+1) と変形されますから、q±1の何れかは3の倍数であり、
q=6K±2です。ここで K:整数。
q=6K+2のとき q-1とq+1は 6k+1と3(2K+1)であり、
GCD(6K+1,2K+1)=1なので、6K+1と2K+1はそれぞれ4乗数でなければなりません。
q=6K-2の場合も同様に6K-1と2K-1が4乗数でなければなりませんが、
4乗数が6K-1になることはありません。
よって、 p14=6K+1 ,p24=2K+1 であるような Kが存在しなければなりません。
ここで、p14=6K+1となるように、
p1=6g+1ないし6g+5とおきます。
一方、p2≒p1×(3)-0.25です。
つまりp2、p1が存在するなら
p2=[p1×(3)-0.25]+1
であって ( [ ]はガウス記号 )
3p24-p14-2=0
を満足します。
また少なくとも 任意の整数M8に対して
3p24-p14-2≡0 mod M8
です。
プログラムでは M8として 226の後、226-1を用いて2段階検査しています。
この2段階をPassした場合はさらにModなしの検査を1000桁モード等で実施する必要があります。
以上をクリアするものがある場合、nは下記で計算されます。
n= | 3p22p12-1 2 |
なお、p2=[p1×(3)-0.25]+1を計算するとき、(3)-0.25の値が2進モードでは桁落ちしていますが、これは問題ありません。
なぜならp2≒p1×(3)-0.25であるのでそのような場合は決して成立しないからです。
逆に、10進モードを用いる場合は、p1の最大桁+3桁ぐらいで明確に切り捨てるようプログラム(下記)する必要があります。
RR3=INT(RR3*M8*1000)/M8/1000
◆東京都 昔とった杵柄 さんからのコメント。
全然解けていないのですが、変な問題にぶつかってしまったので、報告します。
問題を解こうと思いまして、次の 3つが、分かりました。
(1) まず、
x3+(x+1)3 = (2x+1)*(x2+x+1) と因数分解できます。
(2) 次に、x>1 では、
x2 < x2+x+1 < (x+1)2 が成り立つので、
x が整数なら、x2+x+1 は平方数にはなりません。
(3) また、2x+1 と x2+x+1 の最大公約数は、ユークリッドの互除法を使って、
x=1 mod (3) の時 3、x=0,2 mod (3) の時 1 となりました。
従って、もし、x>1 で平方数になるとしたら、
x=1 mod (3) で、 | 2x+1 3 | が、平方数であり、 |
かつ、 | x2+x+1 3 | も平方数である場合に限られます。 |
そこで、パソコンで | x2+x+1 3 | が平方数になる場合を調べたところ、 |
よく考えると、これが分かっても、元の問題には遠いのですが、
x2+x+1 3 | が平方数になるのは、どんな場合なのでしょう? |
X= 1 22 313 4366 60817 847078
◆広島県 清川 育男 さんからのコメント。
Y.M.Ojisan さんの推論に従えば、2000桁程度まで存在しません。
十進BASICの1000桁モードで実行します。
REM y=(p2)^2,x=(p1)^2 REM 3*y^2-x^2=2 REM y=A(n) ,x=B(n) DIM A(1749) DIM B(1749) LET A(1)=1 LET A(2)=3 LET B(1)=1 LET B(2)=5 FOR N=3 TO 1749 LET A(N)=4*A(N-1)-A(N-2) LET B(N)=4*B(N-1)-B(N-2) LET Y=A(N) LET Y1=SQR(Y) LET Y2=INT(Y1) LET X=B(N) LET X1=SQR(X) LET X2=INT(X1) IF Y1=Y2 AND X1=X2 THEN PRINT "Y=";Y PRINT "X=";X END IF NEXT N LET YY$=STR$(A(1749)) LET XX$=STR$(B(1749)) PRINT LEN(YY$) PRINT LEN(XX$) PRINT LEN(YY$)+LEN(XX$);"桁” END
3*(P2)4-P14=2
(P2)2= | (3+sqrt(3))2*k-1+(3-sqrt(3))2*k-1 6k |
(P1)2= | (1+sqrt(3))*(2+sqrt(3))k-1+(1-sqrt(3))*(2-sqrt(3))k-1 2 |
◆東京都 昔とった杵柄 さんからのコメント。
依然として、元の問題は、解けていないのですが、conejoさんの、もうひとつの問題と、Y.M.Ojisanさんの解答を見て、前回、報告した問題は、解決できましたので、証明します。
<補題>
X2+X+1 3 |
が平方数になるのは、 |
X(0)=-2、X(1)=1
X(n)=14X(n-1)-X(n-2)+6
で定義される、数列{X(n)}。
<証明>
まず、
X2+X+1 3 |
= Y2 を満たす、整数(X,Y)の解は、 |
X+ | 1 2 |
=x と置く事により、 |
ここで、次の変換を考えました。
f(x,y) = (7x-12y, -4x+7y)
このfは、 双曲線x2/3-y2 = -1/4 上の、 (半整数,整数)の点を、同じ双曲線の(半整数,整数) の点に移します。
∵
(7x-12y)2/3 - (-4x+7y)2= x2/3 - y2 だから。
ところで、0≦x<6, y≧0 の範囲では、
双曲線上の(半整数,整数)の解は、( | 3 2 |
,1)しかありません。 |
∵ x= | 1 2 | , | 3 2 | , | 5 2 | , | 7 2 | , | 9 2 | , | 11 2 |
を調べました。 |
もし、x≧6,y≧0 の範囲に、(半整数,整数)の解が有ったとします。
その点を(s,t) とすると、f(s,t) = ( 7s-12t, -4s+7t ) の作用によって、
x≧0,y≧0 の範囲で、x座標が 1/13s 以下の点に移ります。
∵
x座標に付いては、
7s-12t = 7s - 12(s2/3+1/4)0.5< (7-4√3)s < 1/13 s
また、s≧6 なので、49s2≧48s2+36 であり、
従って、7s-12(s2/3+1/4)0.5 ≧0 と言えます。
y座標に付いては、
-4s+7t = -4s+7(s2/3+1/4)0.5 > (-4+7/√3)s > 0 です。
この事から、fを繰り返し、作用させていくと、
必ず、0≦x<6 y≧0 の範囲の(半整数,整数)に降りて来ます。
従って、x≧0,y≧0 の範囲にある、双曲線上の(半整数,整数)の点は、
f | -n | ( | 3 2 |
,1) と、書き表せます。 |
なお、逆関数は、f-1(x,y) = (7x+12y,4x+7y) です。
最後に、(x | n | ,y | n | )=f | n | (- | 3 2 |
,1)と、置きます。 |
f-1を行列 Aで表示すると次のようになりますが、
7 12 4 7ケーリー・ハミルトンの公式より、
従って、{(xn,yn)}は、
(x | 0 | ,y | 0 | )=(- | 3 2 |
,1)、(x | 1 | ,y | 1 | )=( | 3 2 |
,1) であって、 |
X=x- | 1 2 |
と置き換えると、 |
X2+X+1 3 |
が平方数になるのは、 |
X(0)=-2, X(1)=1
X(n) =14 X(n-1)-X(n-2)+6 を満たす数列となります。
証明終わり。
解いていて、双曲線と、行列と、漸化式が、綺麗な関係で結ばれているような感じがしました。
もしかすると、より大きな理論の一部なのでしょうか?
ちなみに、元の問題は、この結果を使うと、x=0以外では、
Z(n)= | 2X(n)+1 3 |
が平方数になる時、 |
つまり、Z(0)=-1、Z(1)=1、Z(n)=14 Z(n-1)-Z(n-2)
の数列で、Z(n) が平方数になる時の、X(n) と言う事が出来ます。
でも、この先は、解けませんでした。
いわゆるフィボナッチ数列の場合、平方数は 144、1個だけ、と聞いた事がありますが、
Z(n)にも、もしかしたら、1 以外に、ひとつぐらい、平方数があるのかなぁ、と思ったりもしています。