TeX Alchemist Online

TeX を使って化学のお仕事をしています。

TeXでシェルピンスキー・ギャスケットを作る

1999年 東大理系数学 第5問より

次の問題は,1999年東大理系数学の第5問です。

  1. (1)k を自然数とする。m を m=2k とおくとき,0 < n < m を満たすすべての整数 n について,二項係数 mCn は偶数であることを示せ。

  2. (2)以下の条件を満たす自然数 m をすべて求めよ。
    条件:0 ≦ n ≦ m を満たすすべての整数 n について二項係数 mCn は奇数である。

シェルピンスキー・ギャスケット

この問題の背景には,フラクタル図形として有名なシェルピンスキー・ギャスケットというものがあります。

パスカルの三角形において,偶奇で色分けすると,シェルピンスキー・ギャスケット(の有限版)が現れます。本問はこの現象を題材とした問題となっています。

そこで,TeXパスカルの三角形 (mod 2) を描いてみました。二項係数が偶数のところは青,奇数のところは赤で表示されています。

本問の(2)で問われている,全ての二項係数 mCn が奇数となるような段が,m=2k - 1 (k∈N) のときに登場することが見てとれますね。

TeXでの出力結果

32段( 0C0 から 31C31 まで)

f:id:doraTeX:20140522005335p:plain

64段( 0C0 から 63C63 まで)

f:id:doraTeX:20140522005337p:plain

128段( 0C0 から 127C127 まで)

f:id:doraTeX:20140522005338p:plain

TeXソース

このパスカルの三角形を出力するために用いたTeXソースは以下の通りです。
pdfLaTeX を使って,

$ pdflatex Sierpinski

コンパイルしてください。


追記:pLaTeX + dvipdfmx というワークフローの場合

上記ソースでは,出来上がるPDFを図のサイズちょうどにクロップするために,preview パッケージを用いています。preview パッケージを使うために pdfLaTeX を用いたのですが,dvipdfmx用のドライバを追加導入すれば pLaTeX + dvipdfmx というワークフローでも preview パッケージを使えるということを知りましたので,その方法も紹介しておきます。

  1. prdvipdfmx.def を入手します。
  2. それを適切なディレクトリ(最も簡単なのはソースファイルと同ディレクトリ)に配置します。
  3. 上記ソースの一部に dvipdfmx オプションを追加します。*1
\documentclass[dvipdfmx]{minimal}
\usepackage[dvipdfmx,active,tightpage]{preview}

こうすることで,通常通り

$ ptex2pdf -l Sierpinski

のように pLaTeX + dvipdfmx のワークフローでコンパイル可能となります。

*1:このとき,tightpage よりも前に dvipdfmx オプションを置くよう注意してください。