読者です 読者をやめる 読者になる 読者になる

何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

円周率表を求めて

人は時として円周率を計算したくなる…

そういう人種はごく一部らしい、という現実を最近知った(知らなかったのか!!!)。円周率表といえば暗黒通信団の「円周率100万桁表」が有名である(詳しくは発行同人誌リスト(および概算版元在庫) :暗黒通信団を参照)。自分でそれらしいものを作ってみたくなったので作ってみることにした。思わず Lua で LaTeX してみた ~LuaTeX で日本語しない件について~も参考にさせてもらった。

気軽さを主眼において、SymPyとPythonTeXでお手軽に作ってみた。

\documentclass[8pt,a4j]{jsarticle}
\usepackage[width=545pt,vscale=.9]{geometry}
\pagestyle{empty}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\usepackage[makestderr]{pythontex}
\restartpythontexsession{\thesection}
\begin{document}
%\maketitle
\noindent
\begin{flushleft}
\fontsize{32}{32}\selectfont
$\pi$ = 3.
\end{flushleft}
\begin{pycode}
# coding: UTF-8
import sympy

def pipi(digit):
    return sympy.pi.evalf(digit)

digit = 10**5+1
strpi = str(pipi(digit))[2:]
strpi_len = len(strpi)

s = ""

for x in range(0,digit+1,10):
    s += strpi[x:x+10]+" "
    if len(s)== 110:
        s += r"\\"
        print(s)
        s = ""
\end{pycode}
\end{document}

以下の様な感じになる。
f:id:XaroCydeykn:20131107002335p:plain

円周率を求めるのが醍醐味なのにSymPyに何もかも丸投げするという手抜き!