数学パズルとコードで遊ぶ

はじめに

1980年代になってから数学パズルの本を買っていろいろ遊んでいた。趣味として続けていこうと決めていたのだが途中で、かなり長い期間にわたって中断してしまっていた。世の中はずいぶんと変化して、数学パズルの題材も新しくなっているかもしれないが、古代からのものや日本の中世・近世のものなど素材として面白いものがある。

参考文献は、最後にまとめておく。

図形数

図形と数を対応させることは、おそらく人類は文字などの発明と同じく、ずいぶん古くからのことだと想像される。また数の概念の誕生と図形とは関係していたと思われる。

このことを明快に論理と結びつけたのは古代ギリシアのピタゴラスであった。ピタゴラスが正3角型と数を対応させた話題から始める。

Imgur

小石をならべて3角の形を作っていく。正3角の形になるようにならべると、その3角の小石の数はそれぞれ、1,3,6,10だ。

これを次のように示すことにする。

T1 = 1

T2 = 3

T3 = 6

T4 = 10

1番目の3角数は、1である。2番目からは、直前の3角数に順に2,3,4と足せばよい。従って、Tnについては、

Tn = Tn-1 + n, ただし、n>1 の整数。

の関係が成立する。

Tn = 1 + 2 + 3 + ... + n

3角数の数列を生成するコード

j software でコードを書く。

動詞 i. で0から9までの数列を作る。

動詞 i.に名詞 10 で0から9までの10個の整数列を作ることができる。Jは、0から数えるため結果は次のようになる。

   i.10
0 1 2 3 4 5 6 7 8 9

1からはじめるように1を加える。

   1 + i.10
1 2 3 4 5 6 7 8 9 10

3角数を作る関数tnを定義する。

      tn =: 3 : 0
t1 =. y + 1
t2 =. t1 * y
t3 =. t2 % 2
)

tnを使って10番目の3角数を求める。

tn 10
55
   tn i.10
0 1 3 6 10 15 21 28 36 45
   }. tn i.10
1 3 6 10 15 21 28 36 45

つづく

参考文献

  1. 藤村幸三郎、田村三郎著『数学歴史パズル』、ブルーバックス、昭和60年1月20日、第1刷