Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

m/n=n.mを満たすm,nは(m,n)=(5,2)以外に存在するのか

$
0
0

本来ならば2月5日か5月2日に投稿するべき問題。

自然数m, nにおいて、
m/n=n.m
5/2=2.5
左辺は分数、右辺は小数、となるようなm, nは(m,n)=(5,2)以外に存在するのか。

自分は、(m,n)=(5,2)以外存在しないだろうと予想はしている。

何も考えずにプログラミングして、近いものを探してみた。
nは等しく、mは±1未満で探してます。

5/2 = 2.5
89/9 > 9.88...
101/10 > 10.100
294/17 < 17.294...
368/19 < 19.368...
641/25 > 25.640
5975/77 > 77.5974...
9899/99 > 99.9898...
998999/999 > 999.998998...
3112245/1764 > 1764.3112244...
60005164/7746 > 7746.60005163...
99989999/9999 > 9999.99989998...
385265946/19628 < 19628.385265946...
388925511/19721 > 19721.388925510...
957932148/30950 < 30950.957932148...
9999899999/99999 > 99999.9999899998...
51867447661/227744 > 227744.51867447660...
999998999999/999999 > 999999.999998999998...

とりあえず、プログラミングでは、これくらいまでしか探しきれていません。
多倍長演算をしないことには、これ以上は桁を増やせない状態です。

唯一、法則性が見いだせたのは、

89/9 > 9.88...
9899/99 > 99.9898...
998999/999 > 999.998998...
99989999/9999 > 9999.99989998...
9999899999/99999 > 99999.9999899998...
999998999999/999999 > 999999.999998999998...
99999989999999/9999999 > 9999999.99999989999998...
9999999899999999/99999999 > 99999999.9999999899999998...
999999998999999999/999999999 > 999999999.999999998999999998...

このパターン。


プログラミングではなく、机上の数学のみで、どこまで考えられるんだろうか。

左辺は分数表記、右辺は小数表記。

分母、分子ともに整数の分数は、数学的に言うと有理数という数に分類されます。

分母、分子が整数で表せるのあれば、有理数である。
有理数であれば、分母、分母を整数の分数で表せる。
という必要十分条件の関係にあります。

では、小数表記すると、どういうことが解るのだろうか。

有理数を小数表記すると、整数、有限小数、循環小数の3パターンが存在します。
まぁ、整数を有限小数に含めても良いので、実質2パターンとも言えます。

既約分数表記された有理数が、有限小数になるのか、循環小数になるのか、は、
分母に2や5しか素因数が存在しないならば、有限小数。
分母に2や5以外の素因数が存在するならば、循環小数。
となります。

新しい言葉が出てきました。

既約分数とは、
漢字の通り、既に約分されている分数。
つまり、既約分数とは、既に約分されていて、分母と分子に共通の約数が存在しない分数である。
数式で書くと、分母をm、分子をnとすると、gcd(m,n)=1ということで既約分数であることを示せます。

有限小数とは、
有限桁で表現出来る小数。

循環小数とは、
割り算において、同じ余りが繰り返されることによって、同じ羅列を繰り返す小数。


さて、なぜ既約分数の分母の素因数が2と5だけの場合と、2と5以外が含まれる場合で違いが出るのだろうか。

それは10進数で表記されているからにすぎません。
10を素因数分解すると、2×5、つまり素因数は2が1個、5が1個、2と5以外の素因数はありません。

m=10、n=3のとき、gcd(m,n)=1で既約分数ですが、
10/3=3.{3}
ただし、{}は循環節とする。

また新しい言葉が出てきました。

循環節とは、
循環小数における繰り返される共通の数字の羅列。


問題に戻ると、

m/n=n.m
と左辺は有理数、右辺は有限小数である。

m/nは既約分数とは限らないので、
gcd(m,n)=g
と最大公約数gを求める。

仮に、p=gm、q=gn、として、
m/n=(gp)/(gq)=p/q
と既約分数p/qとする。

有理数m/nが有限小数であるには、既約分数の分母qの素因数が2と5のみでなければならない。

問題文の
m/n=n.m
この表記は数学的には正しくないので、
数学的に正しく示すため、あえて右辺と左辺のm、nを別物として、右辺には'を付け、
m/n=n',m'
として、正しい数学の式にすると、
m/n=n'+m'/10k

k=ceil(log10(m))


仮に左辺のmを
m=n2+x
1≦x≦n-1
と置き換えると、
(n2+x)/n=n2/n+x/n=n+x/n
となり、
n=n'
は容易に等しい状態を作り出せる。
x/n=m'/10k
を示せるものが見つかればよいとなる。
x・10k=m'n
1≦x≦n-1
と両辺とも整数で表すことが出来た。

ここで、
m=m'
であれば解であるので、
x・10k=mn=(n2+x)n=n3+xn

k=ceil(log10(m))

1≦x≦n-1

(m,n)=(5,2)のケースを当てはめてみる。
x=5-22=1
k=ceil(log10(5))=1
x・10k=1・10k=10
mn=5×2=10
n3+xn=23+1×2=8+2=10

(m,n)=(101,10)のケースを当てはめてみる。
x=101-102=1
k=ceil(log10(101))=3
x・10k=1・103=1000
mn=101×10=1010
n3+xn=103+1×10=1000+10=1010

(m,n)=(641,25)のケースを当てはめてみる。
x=641-252=16
k=ceil(log10(641))=3
x・10k=16・103=16000
mn=641×25=16025
n3+xn=253+16×25=15625+400=16025

(m,n)=(957932148,30950)のケースを当てはめてみる。
x=957932148-309502=29648
k=ceil(log10(957932148))=9
x・10k=29648・109=29648000000000
mn=957932148×30950=29647999980600
n3+xn=309503+29648×30950=29647082375000+917605600=29647999980600

さて、左辺と右辺が等しいということは、
10kに着目すると、
mnの素因数2と素因数5の数はどちらもk以上必要だということが解る。
つまり、
x=mn/10k
m>n2
x=m-n2
1≦x≦n-1
k=ceil(log10(m))
いうことでもある。

数学的な考察はこれくらいで、自分の力では証明にたどり着けてはいません。

近いものを見つけるプログラミングの問題だとしても、どこの部分を使ってプログラミングするか、その辺もセンスを問われそうである。

結論の出ないままですが、


ではでは


Viewing all articles
Browse latest Browse all 5376

Trending Articles