629の話
6/28
数字に興味がある人なら6月28日という日付を見て気付くでしょう。
6.283185307179586476925286766559005768394338798750211641949889184615632812572417997256069650684234135964296173026564613294187689219101164463
円周率の2倍だ!
Happy Tau Day!
2πのことをτ(タウ)と言うらしい
また、6も28も完全数なので、完全数の日でもある
昨日2πの日、完全数の日だったのか
↑日付が過ぎてから気付く。
じゃあ6/29にはどんな日なの?ということで調べてみた。
629
まず素因数分解してみる。
629 = 17 * 37
素因数が2つの半素数ですね。
次に調べる
wikipedia:629
600 (number) - Wikipedia, the free encyclopedia
629 - Wolfram|Alpha
629はハーシャッド数、高度逆トーティエント数であり、正整数の2乗の和の形で2通りに表すことができ、629の2乗も正整数の2乗の和の形で2通りに表すことができる数、らしい。
ハーシャッド数は各位の桁の数の和が元の数の約数になっている数のこと。
629だと6+2+9=17で、確かにさっき素因数分解した数が出てきている。ハーシャッド数自体はありふれているけれども、それを割った値も素数になる強いハーシャッド数(strong Harshad number) *1でもあるようだ
629がハーシャッド数かどうかにはあまり興味がないけれども、初めて階乗がハーシャッド数でない数になるのは432!の階乗の時だということ、10進数で21個以上連続するハーシャッド数が存在しないことが証明されていること、20個連続する最小の組が10^44363342786を超えるところに存在することなど、Wikipediaのハーシャッド数の項目*2 *3に色々興味深いことが書いてあった。進数に依存したつまらない特徴かとハーシャッド数をなめてた。
高度逆トーティエント数は聞いたことがなかったけれども逆トーティエント数とはトーティエント数φ(n)をnから引いたものn-φ(n)のことらしい。629は21番目の高度逆トーティエント数らしいけれどもこれも個人的にはどうでもいい。
2乗の和で2通りに表される数もありふれてる気がする。他の特徴を調べてみよう。
オンライン整数大辞典より
629 - OEIS
面白い数列も面白くない数列も合わせて70ページ以上引っ掛かった。さすが。
7ページ目ぐらいまで読んだところで面白そうなものを発見
A001169 - OEIS
Number of board-pile polyominoes with n cells.
ここから本題
どうやら、この項目の7番目が629らしい。つまり
629 is "Number of board-pile polyominoes with 7 cells. "
polyominoとは大きさ1x1のタイルを辺を接するようにいくつか並べたものの総称で、それが2つならばドミノ、3つならばトリミノ、4つならばテトロミノであり、これはテトリスのブロックに相当する。
例えばテトリスのブロックの場合、全部で19種類、回転して同じになるものを1つと見ると7種類、反転して同じになるものを1つと見ると5種類存在する。
7種類の場合heptominoなので書き換えると
629 is "Number of board-pile heptominoes"
となる。ではboard-pileとはなんなのか
直訳すると「堆積する」とかになる専門用語らしく、
棒を積み上げて出来るpolyominoを表しているようです。
具体的には横に見た時に、タイルが分断していない、一本の直線になっているものを指す。
例えばこういうものは、board-pile。
これはダメ
この方向だとオッケーなので、回転方向に依存する定義である。
board-pileはhorizontally convex(水平方向に凸)とも書かれるらしい。
そんなboard-pile heptominoが629個あるらしい。書き出してみよう。
Mac用にいいドット絵ツールないかなー、
Pixenというのが良いらしいのかー...
ぽちぽち...
うーん... (37/629)
... 飽きた。(50/629)
まず手作業でひたすらやってみて飽きたらプログラムというのはプログラミングのありがたみを知るために必ず経るステップなのか、気合いの見積もりが下手なだけなのか。コードを書く合間にドットの方も増やしたり最終的に83個手打ちしたらしい。
ソースコード
解説
例えば底辺が3だとしたら、まず3つ横に並べて、その上に4つのポリオミノを1つずつずらしていくイメージ。
個数が漸化式で
a(n) = 5*a_(n-1) - 7*a_(n-2) + 4*a_(n-3) for n >= 5.
と書けるように、動的計画法で生成している。
misc/js/heptomino/board_pile.coffee at master · wand125/misc · GitHub