隣り合う数を足していく算数マジック

「元ネタ」のツイートを見て思いついた問題をまとめました。
5

元ネタ

三谷 純 Jun MITANI @jmitani

数学の先生方との飲み会の席で、次のような算数マジックを見せてもらった。 6つの数字を書く。 となりあう数字を足した値の1桁目を1段下に書く。 これを繰り返して最後に出てくる数字を、6つの数字を書き終えた瞬間に言い当てるというもの。 いま自分でも納得できたので娘にもやってみせよう pic.twitter.com/ANhVNT21cs

2017-07-27 21:57:26
拡大

思いつき

ゆぽ @yupotown

(1) N個の数字を横に並べて書く (2) 隣り合う2つの数の和を(N-1)で割ったあまりをその下に書く (3) (2)でできた数列に対して(2)の操作を繰り返す (4) 最後に現れる数をMとする

2017-07-29 01:12:02
ゆぽ @yupotown

最初に書く数列を a_1 〜 a_N とすると、 (a) N=6 のとき、Mは a_1 + a_N を (N-1) で割ったあまりに等しい (b) N=12 のときは? (c) N=24 のときは? (d) N=48 のときは?

2017-07-29 01:16:16
ゆぽ @yupotown

賢明な諸君ならお気付きであろう。 (e) N=96 のときはどうなるか?

2017-07-29 01:17:13

ヒントなど

ゆぽ @yupotown

Nを入力したら、乱数で試してくれるプログラムを書きました。 ideone.com/U1vEai

2017-07-29 01:56:13
ゆぽ @yupotown

ヒントとして書いたプログラム ( ideone.com/U1vEai ) は N が大きいと三角形で表示するのが大変なので、最初の数列と最後の値だけ表示するバージョンも作りました。 ideone.com/uV74Mu

2017-07-29 11:12:30
ゆぽ @yupotown

ページ上部の「fork」を押すと編集できるはずなので、stdin (N の値) を変えて「Ideone it!」で試せます。

2017-07-29 11:17:14
ゆぽ @yupotown

N=3 のときはややこしくないです

2017-07-29 10:43:26

答えと第2の問題

ゆぽ @yupotown

答えです。 (a) N=6 のとき、(b) N=12 のとき、(c) N=24 のとき、(d) N=48 のときは、M は a_1 + a_N を (N-1) で割ったあまりに等しくなります。 しかし、(e) N=96 の場合はそうとは限りません。

2017-07-29 23:50:25
ゆぽ @yupotown

試しにプログラムで計算してみると、確かに最後の値 M が a_1 + a_N を (N-1) で割ったあまりにならない場合があります。 ideone.com/Ai0ZZh

2017-07-29 23:57:36
ゆぽ @yupotown

「 N がどんな値の時 M が必ず a_1 + a_N を (N-1) で割ったあまりと等しくなるといえるでしょう」と問題にしたいところだけど、もはや考える人がいなさそうなのでやめておきます

2017-07-30 00:00:07