HaskellでAtCoderに参戦して水色になった

3月下旬からAtCoderのRatedコンテストに参加しています(AtCoderプロフィール)。この度、5月26日のABC128でようやく水色になりました(AtCoder社長の記事によると、これは上位15%に相当するらしいです)。

使用言語はHaskellです。コンテストの時間中に提出したコードは全てHaskellだったと思います。

この記事では、Haskellを使う理由や、Haskellで競技プログラミングをするコツ、AtCoderでHaskellを使う際のアレコレなどを書いていきます。「水色になるための方法」みたいな話はしません(できません)。

続きを読む

技術書典6の振り返り

先日の技術書典6では、新刊「LaTeX文書処理自動化ツールClutTeX 使い方とその仕組み」を無事に(ほぼ)完売することができました。現地で手に取ってくださった皆様、(現地またはBOOTHで)購入してくださった皆様、ありがとうございました。

新刊の電子版(PDF版)をBOOTHで販売中です:LaTeX文書処理自動化ツールClutTeX 使い方とその仕組み – だめぽラボ – BOOTH

続きを読む

技術書典6に、ClutTeX(LaTeX文書処理自動化ツール)の本を出します

4月14日(日曜日)に池袋で開催される技術同人誌即売会「技術書典6」に、「だめぽラボ」としてサークル参加します。

技術書典6(公式サイト)

サークル詳細 | だめぽラボ | 技術書典 ←気になる方はサークルチェックリストに入れてください

サークル(だめぽラボ)としてのページ:https://lab.miz-ar.info/

日時と場所について

公式サイトより:

日時 2019/04/14 (日) 11:00〜17:00
場所 池袋サンシャインシティ2F 展示ホールD(文化会館ビル2F)
主催 TechBooster/達人出版会
一般参加は11時~13時のみ有料

https://techbookfest.org/event/tbf06

当サークルの配置は か15 です。

頒布物について

筆者が作っているLaTeX処理自動化ツール「ClutTeX」についての本を出します。

利用ガイドの他に、LaTeX処理の自動化に関する知見を詰め込んでいます(第3章)。そのため、単なるマニュアル以上の価値があるかと思います。

この他、既刊「代数的数を作る 根と因数分解のアルゴリズム」のダウンロードカードも販売します(紙の本は販売しません。紙の本は見本として置きます)。なお、既刊は BOOTH でも購入可能です: https://damepo-lab.booth.pm/items/1051034

さらに、新刊または既刊をお買い上げの方に、「だめぽラボステッカー」を配布します!今回の技術書典で購入してくださった方のほか、過去に技術書典またはBOOTHで既刊をお買い上げくださった方も対象です。その際はその旨をお伝えください(感想もあれば嬉しいです)。

最速のフィボナッチ数計算を考える

Qiitaにこういう記事を書いた:

Haskellでフィボナッチ数列 〜Haskellで非実用的なコードを書いて悦に入るのはやめろ〜

↑の記事ではメモ化しない計算法が遅いこと、Haskellには遅延評価の罠があって正格にすると早くなること、「n番目のフィボナッチ数」をピンポイントで計算する場合は(行列またはQ(√5)の)冪乗を使う方法が早いこと、一般項(ビネの公式)をその辺の浮動小数点数で計算するのは使い物にならないこと、などを述べた。

まあ、「Haskellでは fib 0 = 0; fib 1 = 1; fib n = fib (n-1) + fib (n-2) でフィボナッチ数が計算できます!」に対する注意喚起としてはこれで十分すぎる内容なのだが、「n番目のフィボナッチ数をピンポイントで計算する方法」についてはもっと深掘りできる。

この記事では、数学的な考察も交えて、「n番目のフィボナッチ数をピンポイントで計算する方法」をより高速化してみたい。(計算量としてはどっちみち O(log n) くらいなのだが、定数倍の部分で高速化する)

なお、記事タイトルには「最速の」と書いたが、この記事で紹介するアルゴリズムが最速だと主張するわけではない(筆者の知らない、もっと早いアルゴリズムが存在するかもしれない)。 続きを読む

冬キャンと曇り空、ときどき流れ星

12月の天文現象といえば、中旬に極大を迎えるふたご座流星群だ。見たい。しかし東京では空が明るすぎる。空が暗いところで見たい。

車があれば荷物を載せて好きなところに移動できる(し、車中泊だってできる)が、一人ではコスパが悪い。公共交通機関で移動し、キャンプして星を見よう。

どこに行くか。この時期、内陸部(山梨や長野)は寒そうだ。筆者が冬にキャンプをするのは初めてなので、あまり寒いのは避けたい。太平洋に面した海沿いならまだ暖かいだろうか。東京からほど近くて海沿いで空が暗そう、となると伊豆か房総か。

房総は公共交通機関でのアクセスに便利そうなキャンプ場があまり見つからなかった。一方、伊豆は初めての冬キャンプにはちょっと遠いような気がした。

では、箱根はどうか。調べてみると、湖のそばに良さそうなキャンプ場があるようだ:芦ノ湖キャンプ村

芦ノ湖キャンプ村は、オフシーズンの平日はテントサイト1泊1000円とリーズナブルで、また、この時期は利用客が少ないので予約なしでも大丈夫そうだ。

星を見ることに関しては、小田原や沼津の市街地にやや近い(光害があるかも)ことが不安要素だが、そこそこの星空は期待できるだろう。 続きを読む