『これも未解決問題?』

『これも未解決問題?』解答


◆広島県 清川 育男さんからの解答。

【問題1】

 自然数の最初の数1になることが予想されます。

答え 1

【問題2】

1) 6÷3=2。2+1=3。3÷3=1
2) 8+1=9。9÷3=3。3÷3=1
3)27÷3=9。9÷3=3。3÷3=1

答え 6,8,27

【問題3】

1のとき 0回。

2のとき 2+1=3。3÷3=1。2回

Nを3以上の自然数とする。

N÷3を考える。

  1. 割り切れるとき N÷3=N1。N>N1

  2. 余り1のとき N+1=N1。N1+1=N2。N2÷3=N3
    N>N3。

  3. 余り2のとき N+1=N1。N1÷3=N2
    N>N2。
 上記のように少なくとも3回の操作で元の数より小さくすることが出来る。
この操作によって最小となる数をP(1ではないとする。)とする。
Pは少なくとも3回の操作によってPより小さい数Qにすることが出来る。
これは矛盾である。
したがって、最小の数は1となる。

【問題4】

一般式で表わすのは難しいようです。
数列サイトのデータベースにありません。

回数・・・
2781243・・・N

任意の数を3進法で表わす。

1)2=2

  >>>  2

3=1×31

  >>>  10

3は1回で1にすることが出来る。


  10
−) 2
――――――――
   1
求める回数 1+1=2。

2)100=1×34+2×32+1

  >>>  10201

243=1×35

  >>> 100000

243は5回で1にすることが出来る。         


  100000
−) 10201
  ――――――――
   12022
各桁の和に5を加えることで求められることが出来る。
5+1+2+2+2=12。

上記のように3進法で表わしそれより大きい3N(最小のN)から引き算をして、その各桁の和にNを加えることで求めることが出来る。

以上です。

 しかし、これでは実際に操作して求めるのと余り変わりありませんね。
大きな数になると計算間違いの可能性は少なくなると思います。   


【コメント】

【問題1,2】はご指摘の通りです。
【問題3】は最小となる数をPとするところが少し問題かもしれません。
ただ自然数が限りなく小さくなることはないので、明らかですか。

【問題4】は面白いですね。
証明はどうすればよいのでしょう。


◆神奈川県 今村 義彦さんからの解答。

問題[1]から[3]は省略する。

問題[4]の答案:

一般式であらわすことを試みる。

1) N = 1

 0 times

2) N = 2

 (2 + 1)/3 ; 2 times

3) N = 3

 3/3 ; 1 times

4) N = 4

 ((4 + 1 + 1)/3 + 1)/3 ; 5 times

5) N = 5

 ((5 + 1)/3 + 1)/3 ; 4 times

6) N = 6

 (6/3 + 1)/3 ; 3 times

7) ここで、Nをk桁の3進数の一般式で表現すると、

N = k-1
Σ
j = 0
a(j)×3j

となる。但し、a(j)は3進数表現における数値表記係数とする。
例えば10進数表現の197は21022と表記するものとする。

(34 * 2 +33 * 1 + 31 * 2 + 2)

この場合、各係数はa(4)=2, a(3)=1, a(2)=0, a(1)=2, a(0)=2ということになる。

3で割り切れるとは、3進数表記でa(0)==0のことを表し、割り切れない場合に1を加えるとは
a(0)==1, あるいは2の場合である。

そして、a(0)が0になるまでa(0)に1を加え続けて、a(1)に桁上げを行なう。
上記の例でいうと、21022から21100に変換する作業である。

さて、一旦a(0)が0であれば、3で割り始める。
3進数表記上で右シフトすることを表す。
例題では、21100から211に変換する作業である。
以上の操作を1になるまで繰り返す。

つまり、211 -> 212 -> 220 -> 22 -> 100 -> 10 -> 1

以上のことから、次のことが言える。
つまり、割算(除算)は3進数表現での桁数分実行し、また、足し算(加算)は、各桁の3の補数の係数の和に1を加えたものとなる。
Nの補数を

k-1
Σ
j = 0
b(j)×3j..... (1)

とすると、加算の回数は

k-1
Σ
j = 0
b(j)+ 1 ..... (2)

となる。但し、b(j)は3進数表記の2の補数である。

例題では、21022に対して、5桁であるから除算を5回、2の補数は01200であるから加算を(1+2+1)4回実行する。

以下、順次説明する。

まず、加算の回数であるが、自然数Nに対して3進数表記の最高位(msb)のみを1とするような数にすることが第一の目的である。
この操作をわかりやすくするために、次のようにNを表す。

N = 1×3k -k-1
Σ
j = 0
b(j)×3j −1....(3)

これを例題に当てはめると、

 21022 = 100000 - 1200 - 1

となる。(1)式からほぼ自明であるが、

Nが1×3k- 1と表される以外は(3)式が成立するので、以下の操作で最終的に1に変換することができる。

初回に1を加える。
その後、毎回の操作においてNの最下位lsb(N(0))に1をb(j)回加えることによって0となる。
b(j)が0の場合は加えることなく、3で割る。(右シフトをおこなう。)
最終的に1が導かれる。

答え:

加算をk-1
Σ
j = 0
b(j)+ 1 回

除算を k 回

但し、b(j)はNの3進数表現の3の補数表記の各係数。
kは3進数表現時の桁数。


 『これも未解決問題?』へ

 数学の部屋へもどる