「素数の秘密2」解答

「素数の秘密2」解答



◆茨城県 小川 康幸 さんからの解答。

一般にk進法で、n/mとr/mが小数部分の循環部分がずれただけで、すべて同じ数の繰り返しになる条件を考えてみまし た。
mを任意の自然数に拡張して考えてみました。

nとmは互いに素でn<mを満たす自然数とする。

数列、a(i,n)とb(i+1,n)を以下の様に定める。

a(0,n)=n
k*a(i,n)をmで割り、商をb(i+1,n)、余りをa(i+1,n)とする。

つまり、k*a(i,n)=m*b(i+1,n)+a(i+1,n)

999 part2で示したように、次のような事が示せる。

  1. 0<a(i,n)<m , a(i,n)≡n*(ki) (mod m)
  2. 0≦b(i+1,n)<m
これから、次のことが言える。

命題1

w=ψ(m)とおく。
(ただし、ψ(m)とは、m以下の自然数のうちで、mと互いに素なものの個数とする)

任意の非負整数iに対して、b(i+1,n)=b(i+w+1,n)となる。

証明

a(i+w,n)
≡n*[kw+i]
≡(n*ki)*[kψ(m)]
≡n*(ki)*1
≡a(i,n) (mod m)

よって、a(i+w,n)=a(i,n)

a(i,n)=m*b(i+1,n)+a(i+1,n)

a(i,n)=a(i+w,n)=m*b(i+w+1,n)+a(i+w+1,n)=m*b(i+w+1,n)+a(i+1,n) 
よって、b(i+1,n)=b(i+w+1,n)となる。

証明終

命題2

rを、mと互いに素でr<mを満たす自然数とする。
sをある自然数とする。

r≡n*(ks) (mod m)⇔  任意の非負整数iに対して、b(i+1,r)=b(i+s+1,n)となる。
証明

命題1よりs<wと考えて良い。
r≡n*(ks) (mod m)と仮定する。

a(i,r)
≡r*n*(ki)
≡n*(ks)*(ki)
≡n*[ks+i]
≡a(s+i,n) (mod m)

よってa(i,r)=a(s+i,n)

a(i,r)=m*b(i+1,r)+a(i+1,r)

a(i,r)=a(i+s,n)=m*b(i+s+1,n)+a(i+s+1,n)=m*b(i+s+1,n)+a(i+1,r)
よって、 b(i+1,r)=b(i+s+1,n)

逆に、任意の非負整数iに対して、b(i+1,r)=b(i+s+1,n)となると仮定する。

k*a(i.r)=m*b(i+1,r)+a(i+1,r)
k+a(i+s,n)=m*b(i+s+1,n)+a(i+s+1,n)より、
k*[a(i+s,n)-a(i,r)]=a(i+s+1,n)-a(i+i,r)

よって、|a(i+s,n)-a(i,r)|=|ki|*|[a(s,n)-a(0,r)]|

ここで a(s,n)≠a(0,r)と仮定すると、
|[a(s,n)-a(0,r)]|≧1より、
|a(i+s,n)-a(i,r)|=|ki|*|[a(s,n)-a(0,r)]|≧ki

iを大きくとると、ki>mとなるが、
これは、|a(i+s,n)-a(i,r)|<mに反する。

よって、
n*(ks)≡a(s,n)=a(0,r)≡r (mod m)

ゆえに逆も正しい。

よって、命題2は示された。

証明終

r≡n*ks (mod m)のとき
0≦i≦w-sなる任意のiに対して、命題2より、
b(i,r)=b(i+s,n)

w-s+1≦i≦w-1なる任意のiは
i=w-s+j 1≦j≦w-1 と書け命題2と命題1より、
b(w-s+j,r)=b(w+j,n)=b(j,n)

b(0,r)=b(s,n),
b(1,r)=b(1+s,n),
・・・
b(w-s,r)=b(w,n),
b(w-s+1,r)=b(1,n),
・・・
b(w-1,r)=b(s-1,n)

よって問題の条件は成立する。

逆に、問題の条件が成立するとき、
命題2より、r≡n*ks (mod m)が成立する。

よって、
n/mとr/mが小数部分の循環部分がずれただけで、すべて同じ数の繰り返しになる

r≡n*(ks) (mod m)

特に、k=10,m=7のとき、mod 7で、
1≡1*(106), 2≡1*(102),
3≡1*(101) ,4≡1*(104) ,
5≡1*(105) ,6≡1*(103) (mod 7)

がいえるので、問題のような事が起きたのでしょう。


 素数の秘密2へもどる

 数学の部屋へもどる