『今週の問題』第31回 解答


◆東京都 Asami さんからの解答。

【問題1】

7回

【問題2】

1回で1になるためには、1を加えて1になるか、または2で割って1になるのいずれかだが、前者は不適。
したがって2の1つのみしか無いことが分かる。

2回で1になるには1回操作した後、2にならなくてはならないが、1を加えて2になる場合は不適なので、4の1つのみしかないことが分かる。

3回で1になるには1回操作した後、4にならなくてはならないので

 8→4→2→1
 3→4→2→1

の丁度2つ存在することが分かる。

4回で1になるには1回操作した後、8または3にならなくてはならない。

 16→8→……
 7→8→……
 6→3→……

5回で1になるには  32→16→……
 15→16→……
 14→7→……
 5→6→……
 12→6→……

5,12,14,15,32

【問題3】

さて、ここで注意すべき2点がある。

  1. 例えば8は偶数なので8になる可能性が『奇数+1,偶数÷2』の2つ、
    3は奇数なので3になる可能性は『偶数÷2』の1つであり、実際にそれらの個数分ちゃんと存在していること
    (逆に計算すればよい)

  2. 異なる分岐において、どこかで数が重なってしまうことはないこと
    (2の理由:任意の数に対して、1回の操作で一意的に次の数が決定するから)
偶数→偶数→偶数 ……144
奇数→偶数→偶数 ……144
偶数→奇数→偶数 ……144
偶数→偶数→奇数 ……89
奇数→偶数→奇数 ……89

合計610個

【問題4】

次の命令を与える。

@:k=1ならここで終了。
 k≧2でも1回の操作で1になればここで終了。
 そうでなければAへ行け。

A:2回操作した後の数をkと置いて@へ行け。

与えられた数をkと置いて↑の命令に従わせることを考え、
いま@→A→@となったときに、初めの@でのkの値と、後者の@でのkの値とを比較してみると、

前者の@でのk(>2としてよい)が偶数ならば
 k>k/4
 k>(k/2)+1

kが奇数なら
 k>(k+1)/2となっているが、
もしある時点で@でストップしないとすれば、
@→A→@→A→……を無限に繰り返すことになる。
つまり、無限に下降する正の数の列が作れることになって矛盾である。
したがって、いつかは@でストップし、これは最終的に“1”になることを意味している。

【おまけの解答】

X=2Kn+2Kn-1+………2K1と2進表示する。

(ただしKn>Kn-1>……>K1とする)

Fn(Kn,Kn-1,……,K1)で、

X=2Kn+2Kn-1+………2K1が1になるためのステップ数と定義すると、

Fn(Kn,Kn-1,……,K1)
=Fn-1(Kn-1,Kn-2,……,K1)+2Kn−2Kn-1−1

………
=F2(K2,K1)+2Kn−2K2−(n-2)
=2(K2)−K1+1+2Kn−2K2−(n-2)
=2Kn−K1−n+3 
 ………【これがステップ数】


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

【問題1】

27>28>14>7>8>4>2>1

答え 7回。

【問題2】

32>16>8>4>2>1
14>7>8>4>2>1
12>6>3>4>2>1
15>16>8>4>2>1
5>6>3>4>2>1

答え 5,12,14,15,32。

【問題3】

n回の操作で1になる偶数の個数をa(n)、
奇数の個数をb(n)、
合計をc(n)とする。

n>2 のとき
a(n+1)=a(n)+b(n)=c(n),b(n+1)=a(n)
であるから、
a(n+2)=a(n+1)+a(n)となる。
a(n),b(n),c(n)はそれぞれフィボナッチ数列となる。

 123456789101112131415
a(n) 11123581321345589144233377
b(n)001123581321345589144233
c(n)1123581321345589144233377610

答え 610個

【おまけの問題】

フィボナッチ数列を利用する。


◆石川県 平田 和弘 さんからの解答。

(問題1解答)

27→28→14→7→8→4→2→1 の7回で1にできます。

(問題2解答)

奇数のとき1加える操作を奇操作、偶数のとき2でわる操作を偶操作とします。

1.

まず、あらゆる試行で最後の2手前は必ず、4→2→1 となる。
要するに最終手およびその1手前は偶操作、偶操作 となります。

2.

奇操作の次ぎは必ず偶操作となる。

3.

偶操作の次ぎは偶操作または奇操作となる。

以上上記1.2.3.より考えられるパターンは

a.偶操作→偶操作→偶操作→偶操作→偶操作 で 32
b.偶操作→偶操作→奇操作→偶操作→偶操作 で 12
c.偶操作→奇操作→偶操作→偶操作→偶操作 で 14
d.奇操作→偶操作→偶操作→偶操作→偶操作 で 15
e.奇操作→偶操作→奇操作→偶操作→偶操作 で 5

をそれぞれ1にすることができます。

答えは 32,12,14,15,5

(問題3解答)

上記考察より、操作が13回のときは奇数または偶数でスタートするのでさらに2回遡ることを考えて

1.

13回の操作が奇数スタートのとき15回の操作のスタートは次ぎの2パターン

13回 14回 15回
奇数←偶数←奇数
奇数←偶数←偶数
2.

13回の操作が偶数スタートのとき15回の操作のスタートは次ぎの3パターン

13回 14回 15回
偶数←偶数←偶数
偶数←奇数←偶数
偶数←偶数←奇数
で13回の操作では、
奇数が233-144=89なので1.より89×2=178
偶数が144なので1.より144×3=432

従って合計は178+432=610 となります。

(問題4およびおまけの問題)

方針はNを2進法で考えます。

まず、N=2n のときは明らかにn回偶操作をおこなえば1になります。

次にN≠2n のとき
自然数Nは必ず2進法でつぎのように表せます。

N=11・・・10・・・01・・・10・・・0・・・・・・・1・・・1   ・・・(A)
   ↓   ↓   ↓   ↓          ↓
  m(1)コ  n(1)コ m(2)コ n(2)コ        m(k)コ
上の式の意味は1がm(1)コ続き、その次に0がn(1)コ続き、その次にまた1がm(2)コ続き、その次に0がn(2)コ続き、・・・・最後に1がm(k)コ続くというものです。

または

N=11・・・10・・・01・・・10・・・0・・・・・・・1・・・10・・・0   ・・・(B)
   ↓    ↓   ↓   ↓          ↓   ↓
  m(1)コ  n(1)コ m(2)コ n(2)コ        m(k)コ n(k)コ
と表せますが(B)の場合は予め偶操作をn(k)回繰り返せば(A)と同じになるので(A)について考える。

(A)の一番最後を詳しく見ると、

・・・1・・・・・10・・・・・01・・・・・1
     ↓     ↓     ↓
    m(k-1)コ  n(k-1)コ  m(k)コ
に奇操作を1回行うと、
・・・1・・・・・10・・・・・0 1 0・・・・・0
      ↓     ↓    ↓   ↓
    m(k-1)コ  n(k-1)-1コ  1コ m(k)コ
さらに偶操作をm(k)回行うと、
・・・1・・・・・10・・・・・0 1 
     ↓     ↓    ↓
   m(k-1)コ  n(k-1)-1コ  1コ
奇操作と偶操作を交互に(n(k-1)-1)回行うと
・・・1・・・・・1 1
     ↓    ↓
   m(k-1)コ   1コ
となり奇操作n(k-1)回、および偶操作m(k)+n(k-1)-1 で間の0が消える。

それぞれ次の試行で最後に1が1つずつ増えるので偶操作が1増えることに注意し、
以下同様にして、

奇操作 (n(1)+n(2)+・・・+n(k-1))回 
および
偶操作 (m(2)+m(3)+・・・+m(k)+n(1)+n(2)+・・・+n(k-1)-1)回
で間のすべての0が消えて、最後は

1・・・・・1 1
 ↓     ↓
m(1)コ    1コ
となる。

これに奇操作を1回、偶操作を(m(1)+1)回行うと1になります。

よって求める回数は(A)のとき、

奇操作 (n(1)+n(2)+・・・+n(k-1)+1)回
および
偶操作 (m(1)+m(2)+m(3)+・・・+m(k)+n(1)+n(2)+・・・+n(k-1))回

で1になります。

わかりやすく書くとNを2進数に直して、

1.

N=2n のときは明らかにn回(1の後に続く0の数分)偶操作をおこなえば1になります。

2.

N≠2n のとき
奇操作は、(1に挟まれている0の合計の数+1)回 となり
偶操作は、(2進であらわしたときの桁数)回 となります。

例えば問題2の答えに出てきた数字はそれぞれ

32=100000 は 1.のパターンで、
 奇操作=0、偶操作=5回 の合計5回 となります。

12=1100  は 2.のパターンで、
 奇操作=1、偶操作=4回 の合計5回 となります。

14=1110  は 2.のパターンで、
 奇操作=1、偶操作=4回 の合計5回 となります。

15=1111  は 2.のパターンで、
 奇操作=1、偶操作=4回 の合計5回 となります。

5=101   は 2.のパターンで、
 奇操作=2、偶操作=3回 の合計5回 となります。

また33=100001 は 2.のパターンで、
 奇操作=5、偶操作=6回 の合計11回 となります。

実際、

33−→34−→17−→18−→9−→10−→5−→6−→3−→4−→2−→1
  奇  偶  奇  偶  奇  偶 奇  偶 奇  偶 偶
(感想)

なかなかおもしろい問題でした。
問題1はやさしく、問題2ができれば問題3まではできます。
問題4はあたりまえすぎてなかなか証明が難しく、回数を求める方法を考えているうちにいっしょにしてこうなりました。


◆神奈川県 ひろし さんからの解答。

【問題1】

27→28→14→7→8→4→2→1

により 7回

【問題2】

1←2←4←8←16←32
1←2←4←8←16←15
1←2←4←8←7←14
1←2←4←3←6←5
1←2←4←3←6←12

以上により 5,12,14,15,32 の5個

【問題3】

13回で1になるのは、偶数144個、奇数89個

偶数144←奇数144個←偶数144個
偶数144←偶数144個←偶数144個
偶数144←奇数144個←奇数144個
奇数89個←偶数89個←偶数89個
奇数89個←偶数89個←奇数89個

以上の可能性しかない。

144+144+144+89+89=610

【問題4】

任意の自然数をNとすると

n≦<N<2n+1

を満たすnが必ず存在する。

このとき、左辺のイコールが成立すれば、n回2で割ることにより1となる。

条件の操作(奇数なら+1、偶数なら÷2)を何回か行うことにより、Nは

n-1≦N1<2n

を満たすN1となる。
このとき、左辺のイコールが成立すれば、n-1回、2で割ることにより1となる。

以下同様に
・・・・・・・・
・・・・・・・・

1≦Nn<22

満たすNnとなる。

0≦Nn<21

を満たすNxとなる。

Nx=1となり、すべての自然数は条件の操作を何回か行うことにより、1となる。


◆大阪府 CHECK さんからの解答。

先におまけから解きます。

(おまけの解答)

この問題は、1以外の奇数に突き当たれば必ず偶数になるという性質を持つ計算である。
よって、いかなる数もこの計算を行えば2(nは自然数)になってから1になる。

またNが奇数の時はN+1(偶数)の計算回数よりも1多いことは明らかである。

ここで、全ての自然数から偶数のみで考える。

すると今度は、Nが4の倍数でない数の時、
 NはN+2(4の倍数)の計算回数よりも1多い。
(∵一回計算すると差が1の奇数と偶数になる)

さらに、偶数の数の中から4の倍数のみを考える。
すると、Nが8の倍数でない数の時、
 NはN+4(8の倍数)の計算回数よりも1多い。
(∵一回計算すると差が1の奇数と偶数になる)

この操作を何回も繰り返していけばN以上で2で表すことのできる数のうち最小のものの数しだいでその計算回数を割り出すことが可能となる。

以上の操作を「操作A」と書く。

自然数を次のように群に分ける。(便宜上1は除く)

2/3,4/5,6,7,8/9,10,11,12,13,14,15,16/17,18,・・・・
第n群の最大の数は2となる。

∴[ ]をガウス記号とすると、Nは
第[logN]+1群の第N−2[logN]項目にある。
(この解答で扱う対数は全て底を2とする。Nは自然数なので真数条件を満たす)

また「操作A」より、第n群に属する数は問題の計算を行ったときの回数が必ずn回以上となる。

ここで群を真ん中で2つの群に分けることができるとき、Nが小さい方か大きい方のどちらに属するかを見る。

小さい方ならば計算回数はn+1回以上、大きい方ならばn回以上となる。
(∵「操作A」)

これを(小)もしくは(大)で表す。
さらに属する方の群を真ん中で2つの群に分けることができるとき、Nが小さい方か大きい方のどちらに属するかを見る。

(小小)ならn+1+1=n+2回以上、
(小大)ならn+1回以上、
(大小)ならn+1回以上、
(大大)ならn回以上となる。

これらの操作を「操作B」とすると、
「操作B」を[logN]+1−1=[logN]回行い、Nが分けた群の小さい方に属する回数をnに加えた数がNの計算回数である。

例えば(小小大小大大小小)なら小は5個あるのでn+5回が計算回数である。

以上を数式で表すと・・・・・・、僕はmodの使い方はあまり知らないので表せないですが、
上の[logN]+1等の数を使って出来ます。

表せなくても、
第[logN]+1群の第N−2[logN]項目が「操作B」でどこに属するかを調べれば計算回数は簡単に割り出せます。

「操作B」はとても簡単な作業なので苦労はしないと思います。
それでは他の問題をこれを使って解いてみます。

(問題1)

[log27]+1=5 27−2[log27]=11
27は第5群の第11項目にある。

∴27は「操作B」で(大小大小大)より小は2個。

よって5+2=7回が27の計算回数である。

(問題2)

第n群の数の中で計算回数の最大となるものは「操作B」で全てが小になるもの、すなわち第1項目であり、
その計算回数は2n−1回である。

当然計算回数が最小のものはその群の末項である。
よってn≦5≦2n−1を満たすnを求めると、n=3,4,5である。

n=3のとき「操作B」で小が2つある組み合わせは
 (小小)の1通り。

n=4のとき「操作B」で小が1つある組み合わせは
 (小大大)(大小大)(大大小)の3通り。

n=5のとき「操作B」で小がない組み合わせは
 (大大大大)の1通り。

よって計算回数が5回となるものは1+3+1=5個である。

(問題3)

n≦15≦2n−1をみたすnは、
 n=8,9,10,11,12,13,14,15

n=8のとき「操作B」で小が7つある組み合わせは
 =1通り

n=9のとき「操作B」で小が6つある組み合わせは
 =28通り

n=10のとき「操作B」で小が5つある組み合わせは
 =126通り

n=11のとき「操作B」で小が4つある組み合わせは
 10=210通り

n=12のとき「操作B」で小が3つある組み合わせは
 11=165通り

n=13のとき「操作B」で小が2つある組み合わせは
 12=66通り

n=14のとき「操作B」で小が1つある組み合わせは
 13=13通り

n=15のとき「操作B」で小がない組み合わせは1通り

よって計算回数が15回となるものは
1+28+126+210+165+66+13+1=610個である。

(後で気づいたんですけど、本当は13回の時の数値を使って解くんですよね。)

(問題4)

いかなる自然数Nも計算すれば「操作A」より2になることは明らかである。

は必ずn回の計算で1になる。

よって任意の自然数Nは何回かの計算の後に答えが必ず1になる


◆北海道 いくまる さんからの解答。

(問題1)

27→28→14→7→8→4→2→1

7回

(問題2)

奇数に1を加えることを○、偶数を2で割ることを×で表す。例えば問題1は

○××○××× と表すことが出来る。

続けて2回1を加えることはなく、また最後は必ず2回続けて割ることとなる。
よって、5回の計算で始めて1となる数を求めることは、○が2つ続いて並ぶことが無く、最後に×が2つくるように、5つの○または×を並べることと対応している。

×××××
○××××
×○×××
××○××
○×○××

これはそれぞれ、32,15,14,12,5と対応しており、これが求める数である。

(問題3)

13回の計算で初めて1となるのは
偶数が144個(Group A)、奇数が89個(Group B)、計233個である。

15回の計算で初めて1となる数は2回の計算で必ず、Group AまたはBに含まれるはずである。
この2回の計算の過程を考えると、

××→Group A or B (元の数は偶数)
○×→Group A or B (元の数は奇数)
×○→Group A (元の数は偶数)

よって求める数の個数は
233+233+144=610

よって610個

>>横道にそれて

n回の計算でで初めて1となる数の個数をPn,このうち偶数の個数をQnとする。

P1=1(2), Q1=1(2)
P2=1(4), Q2=1(4)
P3=2(3,8), Q2=1(8)
P4=3(6,7,16), Q4=2(6,16)
P5=5(5,12,14,15,32), Q5=3(12,14,32)

n≧2のとき、問題3より

P_(n+1)=Pn+Qn

Q_(n+1)=Pn

下式より、Qn=P_(n-1)、これを上式へ代入、

P_(n+1)=Pn+P_(n-1)

これはフィボナッチの数列ですね!!

(問題4)

初期値をA1とし、Anから2で割る(Anが偶数のとき)、または1を加えて2で割る(Anが奇数のとき)ことで作られる数を
A_(n+1)とする。
初めて1となるときに、この数列が終わるものとし、Ap=1とする。
任意のn(n<p)について考えると、

(i)Anが偶数のとき
A_(n+1)=An/2 より

A_(n+1) (ii)Anが奇数のとき
A_(n+1)=(An +1)/2 より

A_(n+1) -An=(1-An)/2

Anは1より大きい整数であるので、右辺は負となる。
よって A_(n+1) (i),(ii)より、任意のnに対して、

A_(n+1) {An}は正の整数から成り立つ単純減少数列であり、Ap=1となるpが存在する。


◆石川県 Takashi さんからの解答。

≪T≫

27⇒28⇒14⇒7⇒8⇒4⇒2⇒1

7回

≪U≫

5回目に初めて結果が1になるとき、4回目の結果は2、3回目の結果は4である。
2回目の結果は(8,3)、
1回目の結果は(16,7,6)、
最初の数は(32,15,14,12,5)

≪V≫

13回で1になる偶数が144個、奇数が89個ある。
ここで、任意の偶数を2k、奇数を2n−1と置く。
 【k,nは自然数】

1回の計算で結果が2kとなる数は、(4k,2k−1)
同様に2n−1の場合は、(4n−2)

これらの三つの数を4で割った時の余りは、それぞれ異なる事が判るのでこれらの数が等しくなることは無い。
よって、14回で1になる数は、
偶数が233(=144+ 89)個、奇数が144個である。

さらに、15回で1になる数は、
偶数が377(=233+144)個、奇数が233個である。

610個

≪おまけ≫

【数学的帰納法】

・まず、2は一回の計算で1になる。

・ある自然数kについて1≦n≦2kとなる全ての自然数nが何回かの計算の結果1にたどり着くとき、

k+1≦n≦2k+1−1の全ての奇数は、1回の計算【1を足す】を行うと、
k+2≦n+1≦2k+1の全ての偶数になる。

k+2≦n≦2k+1の全ての偶数は、1回の計算【2で割る】を行うと、
1≦n/2≦2kの範囲に全て含まれるので、計算を繰り返すことによって、いずれ1になる。

よって、1≦n≦2k+1となる全ての自然数nが何回かの計算の結果1にたどり着くことになる。

以上によって、全ての自然数nについて、何回かの計算をすると必ず1にたどり着く事が出来る。


◆神奈川県 焼き餃子 さんからの解答。

【問題1】

27を2進数で表記すると、11011bである。
ここで、最後の’b’は2進数表記の意味をあらわすこととする。
数値のLSB(最下位ビット)は1である場合に1を加え、0である場合に2で割る。
2で割るとは1ビット右シフトすることである。
よって、作業行程は以下の通り。

初期値11011b(+1)
1st11100b(/2)
2nd1110b(/2)
3rd111b(+1)
4th1000b(/2)
5th100b(/2)
6th10b(/2)
7th1b(final)

答え:7回

【問題2】

今、ある数値mに施す演算をA或いはDとする。
Aは1を加算し、Dは2で除算することを表す。
一般的にFとすると、

1 = F5.F4.F3.F2.F1(m).....[1]

となる。演算子は、右から作用することとする。
また、ここで逆演算子Gを仮定する。
つまり、GはS或いはMであり、SとMはそれぞれ1を減算し、2を乗算することをあらわす。すると、

G1.G2.G3.G4.G5(1) = m .....[2]

となる。ここで、いくつかの条件を列挙する。

*F5は常にDである。
 1を加算して1になる数(自然数)はないから。

*F4は常にDである。
 1を加算して2になる数(自然数)は1以外にないから。

*F1からF5までの演算子で、隣り合う演算子がAであることはない。
 Aを作用したあとは必ず偶数であるから。

すると、F1からF5の演算子の組み合わせは以下の通りである。

F5,F4,F3,F2,F1(組み合わせ表1)
---------------------------
 {D,D,D,D,D}
 {D,D,A,D,D}
 {D,D,D,A,D}
 {D,D,D,D,A}
 {D,D,A,D,A}
以上の5個。実際の数は、逆演算子式[2]を作用させて、

32,12,14,15,5を得る。並べ替えて、

答え:5,12,14,15,32

【問題3】

問題2の組み合わせ表を拡張して、組み合わせをもとめると610個を得る。

答え:610個

【問題4】

組み合わせ表1を導く条件を再び記述すると、 *F5は常にDである。
 1を加算して1になる数(自然数)はないから。

*F4は常にDである。
 1を加算して2になる数(自然数)は1以外にないから。

*F1からF5までの演算子で、隣り合う演算子がAであることはない。
 Aを作用したあとは必ず偶数であるから。

一般的に、演算子の組み合わせをF-1からF-N(ただし、Nは自然数)とする。
F-NとF-(N-1)以外の組み合わせのうち、3番目の条件から、隣り合う演算子を任意にえらぶと
{A,D}か{D,A}である。
(N-1)回目とN回目の演算士は、1番目と2番目の条件よりDである。
ここで、演算子が作用する結果得られる数値をm2、作用させる数値をm1とおくと、

m2 = F-M.F-(M-1)(m1)

となる。つまり、m1がm2に変換される。
さらにわかりやすく言い換えれば、

m1が奇数のときに m2 = (m1 + 1)/2
m1が偶数のときに m2 = m1/2 + 1 となる。

そして、演算結果の差をdiとすると、

di = m2 - m1
 = 1 - m2(m1が奇数)
 = 2 - m2(m1が偶数) である。

N回目の演算のときにm1が2であるから、一般的(N回目以外の演算のとき)にはm1は3以上の自然数である。
したがって、diは3以上の自然数でつねに負である。
これは、隣り合う任意の2つの演算士を自然数m1に作用させても得られる結果m2はm1よりも小さいことをあらわす。

これを拡張して、1回目から(N−1)までの演算子を連続して広く適用しても、必ず結果は2となり、N回目の演算で1になる。

【おまけ】

問題1でも示したが、2進数で考えることにする。
自然数Nを2進数表記して、

N = Σb(j)*2j
(ただしjは0から無限大の整数、b(j)は2進数表記の係数)

あらわす。
つまり、{...,b(5),b(4),b(3),b(2),b(1),b(0)}である。
この数値をたとえばkビットの数値とすると、

N = {b(k-1),b(k-2),...,b(3),b(2),b(1),b(0)}

となる。この数値の表現を変換して、

N = 2k - 1 - ~{b(k-1),b(k-2),...,b(3),b(2),b(1),b(0)}
 ..... [3]

とおく。つまり、2の補数表記とする。
たとえば十進数表記で27は、二進数表記で11011bである。
これを補数表記すれば、

N = 100000b - 1b - 100b
 = 100000b - 101b ...... [4]

このとき、求める(最終的に変換される)数は1であるから、式[4]の一項目を1にすることが目的である。
式[4]をよく見れば、1を加算して消される項は2項目であり、2で除算して1項目の0が消される。
したがって、上の例では、加算が2回、除算が5回の計7回の演算が必要である。

答え:式[3]の二進数補数表記において、除算をk回、加算を補数表記でb(j)が1である数分の回数が必要である。
なお、問題1,2,3の検算にはプログラム(C言語)を用いました。


#define N 15
main()
{
    int i, j, k, m;

    k = 1;
    for(j = 1; j <= N; j++) {
        k *= 2;
    }

    for(i = 1; i <= k; i++) {
        m = i;
        for(j = 1; j <= N; j++) {
            if (m%2 == 1) m += 1;
            else m /= 2;

            if (m == 1) {
                if (j != N) break;
                else printf("i:%d\n", i);
            }
        }
    }
}


◆奈良県 岸本 大和 さんからの解答。

(おまけの問題)

@任意の自然数Nについて、
n-1<N≦2nとなる 自然数 n を設定します。
( nは、 (logN/log2)≦n<1+(logN/log2)を満たす自然数として求められます。)

Aすると、Nは次のように表示されます。

 N=2n−{A0×20+A1×21+A2×22−−−+Anー2×2n-2
と書けます。
ここで、A0、A1、−−−Anー2は、0または1のいずれか数値をとるものとする。

B Aの式に指定の操作を行っていくわけですが、この操作は、
0の係数=A0 が1の場合は、全体に1を加えて、2で割るという操作です。

今、仮に、Aの式で、A0=1とすると、1を加えれば2で割りきれる。
こうして、2で割ればAの式の各項の、指数が一つ減ります。

C Aの{ }内の A0−−Anー2のうち、1の値をとる項は、2でどんどんわっていくと、いずれ 20になり、この時は1を加えるという操作が必要です。

このことから、1を加えるという操作の回数は、
0−−−Anー1の中で、1の値をとる項の数であり、
0+A1+−−− +Anー1の合計といえます。

Dまた 2で割るという操作は、2の指数を一つずつ減らして、n を 0 にするということだから、Aの式の場合、n 回。

EいまAの{ }内を B とすると、
nー1、−−−、A1、A0は、Bを二進法で表した時の、各桁の数値です。

F一般化すると、N=2n−B 「B<2n-1とする」 の時、Bを二進法で表した各桁の合計を、mとすれば、求める操作の回数は n+m となる。
2で割る回数は n回、1を加える回数は m回。


◆長崎県 Dr. Berserkerさんからの解答。

証明はできませんが、計算を繰り返すと、最終的には、1になるようなので、ここから始めます。

1の前の段階の数は、2のはずです。
つぎに、2の前の段階の数は、1、4ですが、ここで、1では、条件に反するので、4のみということになります。
さらに、その前の段階の数は、3、8のどちらかということになります。

ここまでで3段階です。
さらに2段階、3からは、6、8からは、7、または16
以上3つ。

もう1段階、
6からは、5、または、12、
7からは14、
16からは、15、または32。

よって、5回の計算で、初めて1にたどり着くのは、
5、12、14、15、32の5個ということになります。

上の計算からわかるように、ある特定の回数で、初めて1に辿り着く数の個数には、ある規則があり、これは以下の漸化式でもとめることができます。

N回の計算で、初めて1に辿り着く数のうち、偶数の個数を、A(N),奇数の個数を、B(N)ということにします。
すると、以下のように表せます。

A(N+1)=A(N)+B(N)
B(N+1)=A(N)

ただし、N≧3とし、A(3)=1,B(3)=1です。

残念ながら、この数列は解けなかったのですが、順次計算していくと、

A(4)=2,B(4)=1
A(5)=3,B(5)=2
A(6)=5,B(6)=3
A(7)=8,B(7)=5
A(8)=13,B(8)=8
A(9)=21,B(9)=13
A(10)=34,B(10)=21
A(11)=55,B(11)=34
A(12)=89,B(12)=55
A(13)=144,B(13)=89
A(14)=233,B(14)=144
A(15)=377,B(15)=233

以上より、15回の計算で、初めて1になる数の個数は、合計610個で、うち、偶数は、377個ということになります。


◆東京都 じっさん さんからの解答。

問題1:7回

問題2

32,15,14,12,5の5つ

1から始めて「×2」または「−1」を1回行うごとに回数が1回増える。
ただし、奇数の場合は「−1」ができない。
また、2−1は1となるので除外。

この条件で、しらみつぶしに調べると、

2×2×2×2×2=32
2×2×2×2−1=15
(2×2×2−1)×2=14
(2×2−1)×2×2=12
(2×2−1)×2−1=5

の5つでありました。

問題3:610個
(偶数377個、奇数233個)

13回の個数が偶数144個、奇数(233−144=)89個とわかっている。
あと2回の操作で偶数は、
 偶数×2×2
 偶数×2−1
(偶数−1)×2 の3通り、奇数は、
 奇数×2×2
 奇数×2−1 の2通りが可能。

144×3+89×2=610

ちなみに、5通りの計算のうち最後が「−1」で終わるのが奇数なので、
奇数は、144+89=233個

偶数は、610−233=377個

問題4

任意の自然数Nについての操作を考える。
Nに対しては、「÷2」または「+1」の操作が行われる。
また、「+1」の直後は必ず「÷2」の操作が行われる。
任意の自然数に対して「÷2」の操作を行うと、必ず小さな数になる。
また、「÷2」の操作は偶数に対してのみ行われるので、操作後も自然数になる。
任意の奇数 2n+1(n=0,1,2,...)に対して「+1」の後「÷2」を行うと、
(2n+1+1)÷2=n+1 となる。
これが元の数2n+1よりも大きくなることはなく、n=0の場合のみ同じとなる。

n=0の場合、2n+1=1であり、最初から1である。
1以外の自然数は、その後の操作で必ず小さな自然数になり、結果が1となって始めて収束する。

従って、任意の自然数Nは、何回かの操作の後に答えが1になる。

おまけ

証明はわかりませんが、答えの予想は付きました。
2進数が入るので、中学生向きではない回答ですが、ご了承ください。

任意の自然数Nが、「2のk-1」より大きく、「2k」以下の数であるとします。

(Nを2で割りつづけ、答えが初めて1以下となるまでの回数をk回とします。) 

k−N を求めます。
その数を2進数で表してから、1の数を数えます。
それをm個とします。

答えは、(k+m)回となります。

例:N=27で考えます。

4=16<27<32=25なので、
 k=5 です。

32−27=5 です。
5を2進数で表すと、101 となり、1の個数は2個です。

5+2=7 なので、27は7回の操作で1となります。

上記の例で、101は、(25からの)マイナスの数なので、+1の操作1回につき2進数の1が1個消えるのだと思います。

完全な証明は難しそうなのであきらめてしまいました。


◆東京都 小室 英正さんからの解答。

※ 以下の解答で「n→m」は、nに対し操作を施したらmになったことを意味します。
また、「m←n」は、mの1つ手前の状態はnだったことを意味します。

【問題1】

27→28→14→7→8→4→2→1
より7回

【問題2】

Nが奇数のとき1を加え、Nが偶数のときに2で割ることから、この操作は奇数を偶数に、偶数を奇数あるいは偶数に変換する作業であるといえる。

つまり、
奇数 → 偶数 偶数 → 奇数 or 偶数 ということである。

これを逆から考えると、
奇数 ← 偶数(2倍する)
偶数 ← 奇数(1を引く) or 偶数(2倍する)

となる。 ・・・(♯)

これをふまえると、

1 ← 2 ←┬ 1(これは不適)
       └ 4 ←┬ 3 ←─ 6  ←┬ 5
            │          └ 12
            └ 8 ←┬ 7  ←─ 14
                 └ 16 ←┬ 15
                       └ 32
となり、5回の操作ではじめて1になる自然数は
5、12、14、15、32の5つ。

【問題3】

<n>により、要素の個数を示す。

上の【問題2】の例で言えば、

1←<1>←<1>←<2>←<3>←<5>←・・・
ということである。

この表記を用いると、(♯)より

        13回目       14回目       15回目
1 ← ・・・ ←┬ <奇89>  ←─ <偶89>  ←┬ <奇89>
         │                   └ <偶89>
         └ <偶144> ←┬ <奇144> ←─ <偶144>
                   └ <偶144> ←┬ <奇144>
                             └ <偶144>
となり、15回で1になる自然数は 
89×2+144×3 = 610個 ある。

この610個の自然数はすべて異なるものである。
なぜなら、13回ではじめて1になる233個の自然数はすべて異なっているので、14回目以降、1つの<n>で表された集合の中には、同じ数は含まれていない。

また、別の集合<n>、<m>において、同じ要素が含まれていることはない。
同じ要素が含まれているならば、その自然数が2通り以上の方法によって1になることになり、矛盾する。

従って、15回ではじめて1になる自然数の数は610個である。

【問題4】

与えられた自然数Nに対して、それを2進法表記したものを「N(2)」と表す。

すると、この操作は次のように言いかえることができる。

N(2)の末尾が1のとき、N(2)に1を加える
N(2)の末尾が0のとき、N(2)の末尾の0を取る

・・・(♯♯)

どんなN(2)に対しても、この操作(♯♯)を繰り返せば1になることを示す。

N(2)=1のときこれは自明なので、N(2)は2桁以上の数であると仮定してよい。

(i) N(2)が2桁のとき

N(2)は、10か11のどちらかである。
そのどちらに対しても、
10 → 1
11 → 100 → 10 → 1

となり、N(2)が2桁のときには、必ず1になる。

(ii) N(2)が3桁以上のとき

N(2)は次のうちのどれかになる。
 (a) 末尾が0
 (b) すべての位が1
 (c) それ以外

(a)のとき、末尾の0を取ることで、1桁減らすことができる。

(b)のとき、1を加えることで、1桁増える。
しかし、必ず末尾に0が2つ以上続くので、もとの数から比べれば、1桁減らすことができる。

(c)のとき、1を加えても1桁増えることはなく、さらに末尾が0になるので、その0を取り1桁減らすことができる。
よって、N(2)は3操作以内に1桁減らすことができる。
これは、この操作(♯♯)を繰り返すことで、2桁にできることを示している。

従って(i)(ii)により、すべてのN(2)に対して1にすることができることが示された。

N(2)=1のとき、N=1なので、任意の自然数Nは何回かの操作の後に必ず1になる。

【おまけ】

まだ理由を示すことができていません。
あくまで予想です。
プログラムで実験したところ結果が一致するので、予想はあっていると思うのですが・・・。

(1) Nを2進法表示する。t=0とする。
(2) 末尾に連続する0の数を調べ、その値をtに加算する。その後、その0をすべて消す。
(3) (2)の結果、「1」になれば、(7)へ。
(4) (2)の結果、「11・・・11」になれば、1の個数を調べ、それに1を加えた値をtに加算する。そして、(7)へ。
(5) 桁数を数え、それをtに加算する。
(6) 0の数を調べ、それに1を加えた値をtに加算する。
(7) こうして求めたtがはじめて1になるのに必要とする操作の回数である。

例えば、N=9のとき、実際の操作回数は、
9 → 10 → 5 → 6 → 3 → 4 → 2 → 1
で、7回である。

9は2進法では、1001である。
これに対して、(2)〜(4)はt=0のままである。
(5)でt=4、(6)でt=4+(2+1)=7 となり、結果が一致する。 


◆埼玉県 斉藤 誠さんからの解答。

問4

任意の奇正数を
N=2K+1(k=自然数)とすると

=N=2K+1
=N+1=2k+2
=N÷2=K+1で

>f
となり、2回の操作ではじめの数より必ず小さくなる。

Nが偶数の場合は、何回かの2で割る操作で小さくなる。
よって最終的にもっとも小さな正数1に行き着く。

●1になるまでの回数について

任意の奇数を2進数で表す。

@桁数
A1の数(ただし1が連続する場合はひと塊で1個とする)
B0が連続する場合は連続する0の数−1

これらを合計した数が1になるまでの回数になります。
偶数の場合は、右側の0の数を取って数え、最後にこの数を加算。

元の数 1000111
 1  1001000
 2  100100
 3  10010
 4  1001
 5  1010
 6  101
 7  110
 8  11
 9 100
10 10
11 1
元の数 1000111

@ 桁数 7
A 1個または連続する1の塊数 2
B 連続する0の数−1  2

合計 11

これを数式に表すとすっきりしたものには成りそうもないのでここまでにしました。
ただ、おもしろいですね。


◆京都府 みなみようへい さんからの解答。

【問題4】

自然数Nに題意の計算をk回行った結果を A(k) とする。
ただしA(0)=N である。

また、数列 {B(k)} を以下のように定義する。

B(0)=N

B(k+1)={B(k)+1}/2 …(1)

(1)⇔B(k+1)−1={B(k)−1}/2

より、数列 {B(k)−1} は
初項 (N−1)、公比 1/2 の等比数列だから、

B(k)−1=(N−1)/2k⇔B(k)=1+(N−1)/2k

このとき、明らかに任意のkについて A(k)≦B(k)であり、
A(k)は自然数だから 1≦A(k)≦B(k) …(2)

k→∞のとき (N−1)/2k→0

よって B(k)→1 …(3)

(2),(3)から、はさみうちの定理より、全ての自然数Nについて
k→∞のとき A(k)→1 が成り立つ。
(証明おわり)


◆宮城県 アンパンマン さんからの解答。

【問題1】

7回

【問題2】

5,12,14,15,32

【問題3】

a(n)=n回の計算で、答えが1になる奇数の個数

b(n)=n回の計算で、答えが1になる偶数の個数

a(n+1)=b(n)
( n回の時の偶数から1をひく)

b(n+1)=a(n)+b(n)
( n回の時の偶数か奇数に2をかける)

b(n+1)=b(n)+b(n-1) with b(1)=1, b(2)=1

Fibonacci number with b(n)=(1/sqrt(5))((1+sqrt(5))/2)n-(1/sqrt(5))((1+sqrt(5))/2)n

合計個数=a(n+1)+b(n+1)=b(n+2)

a(14)=144, b(14)=233
a(15)=233, b(15)=377

15回の計算で、答えが1になる自然数の個数=610

【問題4】

[1] 1 は自明。

[2] 1≦k≦2nで成立を仮定。
 n≧0

case a:

2n<2m-1≦ 2n+1

1回計算すると必ず偶数2mとなり、2度計算すると m。

2n-1<m-1/2<m≦ 2n

仮定より、成立

case b:

2n<2m≦2n+1

1回計算するとmとなる。

2n-1<m≦2n

仮定より成立。

case a, b より、
2n<k≦2n+1 でも成立、

仮定とあわせて、1≦k≦2n+1 で成立。

数学的帰納法により、すべての自然数について成立。

【おまけ】

Nを2進法で表示する。

N=1..10..0xxx1..10..0、

表記上で1の連続するかたまりわけ、その塊の数をnとする。

かたまりに含まれる1の個数を上位から、
a_n, a_(n-1), ... a_1

同様に、0の連続するかたまりに含まれる0個数を上位から、
b_n, b_(n-1), ... b_1 とおく

(ただし、最下位ビットが1の場合、b_1=0)。

求める回数は、

b_1 + a_1 + 1 + (b_2 - 1)*2 + a_2 + 2 + (b_3 - 1)*2 + a_3 + 2 +・・(b_n - 1)*2 + a_n + 2 
=a_1 + a_2 + ... + a_n +2* (b_1 + b_2 + ... + b_n) - b_1 + 1
= Σ(a_k) + 2*Σ(b_k) - b_1 + 1 
(ただし、Σは1〜nの和)である。

Σ(a_k), Σ(b_k) はそれぞれ、表記上の1の個数、0の個数であるので、これは、

(2進法で表示した時の1の個数) + 2*(2進法で表示した時の0の個数) - (2進法で表示したときの最下位の0の個数) + 1
である。

[類似問題]

もしその数が奇数なら1を引く場合は、

2Σ(a_k) + Σ(b_k) - 2

つまり、
2*(2進法で表示した時の1の個数) + (2進法で表示した時の0の個数) - 2


 ◆ 問題へもどる

 ◆ 今週の問題

数学の部屋へもどる。