こんにちは|こんばんは。カエルのアイコンで活動しております @kyamaz です。
はじめに
本稿のタイトルにあるヘックスですが、ヘキサ(Hexa)がギリシャ語で「6」を表し、ヘキサゴン(hexagon)は英語やギリシャ語で「六角形」を表すのと同様に、ヘックス数は「6」にちなんだ名前です。ヘックスといえば、六角形が並んだ菱形状の盤を使って、2人で対戦するボードゲームだったりもします1。
ヘックス数
ヘックス数は「中心つき六角数」の別称です。単なる六角数とは別になり「中心つき(centered)」というのが必要です。次のせきゅーんさんのエントリにあるとおり、一般項 $H_n = 3n^2−3n+1$ で表されます。
Haskellでのプログラムも気が抜けるほど簡単ではありますが、以下に記します。(オンライン整数列大辞典ではA003215にリストがあります。)
ghci> hn = [3*n*(n-1)+1 | n<-[1..]]
ghci> take 60 hn
[1,7,19,37,61,91,127,169,217,271,
331,397,469,547,631,721,817,919,1027,1141,
1261,1387,1519,1657,1801,1951,2107,2269,2437,2611,
2791,2977,3169,3367,3571,3781,3997,4219,4447,4681,
4921,5167,5419,5677,5941,6211,6487,6769,7057,7351,
7651,7957,8269,8587,8911,9241,9577,9919,10267,10621]
六芒星数
六芒星数とは、六芒星状に点を並べた時の点の総数を表します。英語ではスターナンバー(star number)といい、数式では $6n(n - 1) + 1$ で表されます。
一般項はヘックス数に一辺が$n-1$の三角形を6つ付ける形になることから、$S_n = H_n + 6 \times \frac{1}{2} n(n-1) $ から得られます。
こちらも、簡単なHaskellプログラムを以下に記します。(オンライン整数列大辞典ではA003154にリストがあります。)
ghci> sn = [6*n*(n-1)+1 | n<-[1..]]
ghci> take 50 sn
[1,13,37,73,121,181,253,337,433,541,
661,793,937,1093,1261,1441,1633,1837,2053,2281,
2521,2773,3037,3313,3601,3901,4213,4537,4873,5221,
5581,5953,6337,6733,7141,7561,7993,8437,8893,9361,
9841,10333,10837,11353,11881,12421,12973,13537,14113,14701]
六角数
ヘックス数は”中心つき”という要請がありましたが、六角数はヘックス数と同様に各辺に$n$個の六角形を考えて、その2辺を共有して残りの4辺を新たに$n+1$個にする点の増やし方をするときの数列をいいます。Wikipediaの六角数 に点の増やし方が説明されております。参考にしてみてください。
この六角数の一般項は、$h_n = n(2n-1)$ です。漸化式は $h_{n+1} = h_n + 4n + 1$ です。漸化式が示している意味は、4で割ると1余る整数を1から小さい順に加えた数ということと同義となります。
上の2つと同様に、簡単ですがHaskellで出力してみましょう。(オンライン整数列大辞典ではA000384にリストがあります。)
ghci> xn = [n*(2*n-1) | n<-[1..]]
ghci> take 50 xn
[1,6,15,28,45,66,91,120,153,190,
231,276,325,378,435,496,561,630,703,780,
861,946,1035,1128,1225,1326,1431,1540,1653,1770,
1891,2016,2145,2278,2415,2556,2701,2850,3003,3160,
3321,3486,3655,3828,4005,4186,4371,4560,4753,4950]
中心つき多角数と多角数
本稿では、中心つき六角数(ヘックス数)と六角数について一般項を記載しましたが、三角数、四角数、五角数、・・・が同じく定義でき、その一般項を天下り的に紹介します。
中心つき多角数の一般項
$1$ 番目の中心つき $k$ 角数を $1$ とするとき、$n$ 番目の中心つき $k$ 角数 $C_{k,n}$ は以下の式で表されます。
$\displaystyle C_{k,n}={\dfrac {kn(n-1)}{2}}+1$
多角数の一般項
$0$ 番目の多角数は全て形式的に $0$ とみなし、$n$ 番目の $k$ 角数 $P_{k,n}$ は以下の式で表されます。
$\displaystyle P_{k,n}= {\dfrac {(k-2)n^2 - (k-4)n}{2}}$
ghci> c k n = (k*n*(n-1) + 2) `div` 2
ghci> p k n = ((k-2)*n - (k-4)*n `div` 2
試しに、上記のヘックス数と六角数で検算してみると以下のとおり。
ghci> take 10 $ (c 6) <$> [1..]
[1,7,19,37,61,91,127,169,217,271]
ghci> take 10 $ (p 6) <$> [1..]
[1,6,15,28,45,66,91,120,153,190]
おわりに
本稿は六角形をもとにしたタイトルをつけましたが、五角数などを別にして闇雲にエントリを稼ぐつもりはなく、多角形についても紹介しました。なお、丸善出版より『五角形と五芒星』という書籍が出版されており、「5」にゆかりのある内容はこちらも参考にしてみてください。
ご一読いただきまして有り難うございます。
(●)(●) Happy Hacking!
/"" __""\
-
ボードゲーム『ヘックス』ゲーム理論で有名でナッシュ均衡にも名を残すナッシュのエピソードもWikipediaには紹介されています。 ↩