306番目の素数,2017. 今年のNew Year Cardのテーマは"Ulam Spiral"です. 上画像の点ひとつひとつが素数になります(見やすさのため1も表示されています). ひときわ輝いている点が2017です. 中心の1から数えて306個目の素数. カードでは赤い点として印刷しました. 今年のカードの表面にはProcessingが出力したそのままの画像(Ulam Spiral)を加工せずに印刷しました. 黒地に白点の地味な見た目ですが,そこに描かれているひとつひとつの点が持つ意味は深淵で,宇宙の全体像を見つめているような感覚に陥ります. カード製作はまず,このUlam Spiralを描画するProcessingスケッチをコーディングする所から始まりました. スケッチはMITライセンスとしてGitHubに置きましたので,ご自由に遊んじゃってください.
PrimeSpiral.pde | GitHub.comスケッチはRunするだけでUlam Spiralを描画します. "s"を押すと現在のフレームを保存します. "q"で終了します. 動作自体は単純で,コメントに螺旋(Spiral)を描く手順も記しているので,コードの仕組みは理解出来るかと思います. 扱う自然数は10,000前後までと比較的小さいため,$ \sqrt{n} $未満の自然数で割り切れるか否かを判定条件とする簡単な素数判定アルゴリズムを採用しました. 計算量は$ O(\sqrt{n}) $です.
カードの裏面にはローマ数字と2進数で2017,Ulam Spiralの解説に加え,メッセージを添えました. また新年最初のプレゼントとして,昨年中に私が撮った写真も添えて送らせて頂きました(全員に違う写真がランダムに選ばれて1枚づつ入っています). 封筒の封には糊づけと合わせて封蝋(Sealing Wax)も使いましたが,現代の郵便システムの下では飾りのような存在です. 盗聴,改ざん,なりすましのリスクを防ぐ本来の目的としては使用しておりません. そのため,使用した封蝋は割れにくく柔軟性がありますので,封蝋を割っての開封は難しいかと思われます. レターオープナーを使っての開封をお勧めします.
と,今までのメッセージがメタメッセージになっているように,私は今年もブレずに行きますので,皆さん今年もよろしくお願いします. 新年あけましておめでとうございます. それでは皆さんのご多幸をお祈りして一言,Happy Prime Year!