ジョイジョイジョイ

ジョイジョイジョイジョイジョイ

前処理O(n)クエリO(1)のLCAと静的RMQ

時間計算量 <O(n), O(1)> の LCA(Lowest Common Ancestor) と RMQ(Range Minimum Query) を C++ で実装しました。 アルゴリズムの解説はDさんのスライド [1] LCA and RMQ ~簡潔もあるよ!~ がとても分かりやすいのでそちらを参照してください。 概要だけ説明します。 LCA</o(n),>…

テヘラン旅行

IOI2017(イラン大会)に副団長として参加してきました。 ioi2017.org IOIの参加記は選手・役員の感想(まだ公開されていないようなのであとでリンクを張ります)に書いたのでそちらを参照してください。 第29回国際情報オリンピック イラン大会 速報 も面白…

ミラーラビン素数判定法とロー法

ミラーラビン素数判定法について ミラーラビン素数判定法はフェルマーテストを拡張した感じです。 フェルマーテストでは が素数のとき、フェルマーの小定理より と が互いに素なとき となることを利用して、 と互いに素な整数 を取って であれば合成数と判断…

クリーネの不動点定理(とベルマンフォード法)

言語処理系で講義でクリーネの不動点定理をやった時にベルマンフォードの証明にも使えるなぁと思ったので紹介します。 クリーネの不動点定理 を完備半順序集合とし、 をその上のスコット連続写像とする。このとき、 は最小不動点を持つ。 ここで、完備半順序…

HashedNets

HashedNets [1] を chainer で実装しました。 HashedNets の説明 ニューラルネットワークのパラメータ数は非常に多く、パラメータは冗長な表現になっていることが多いです。 そこで、自由なパラメータの数を減らして、正則化と軽量化を達成するための手法の…

本質的に曖昧な文脈自由言語

本質的に曖昧な文脈自由言語が存在するという事実は色んなところで何度も目にしてきたのですが、証明を見たことが無かったのでここで紹介します。 流れは大体 [1] と同じですが、補題の証明はオリジナルも混ざってます(本質的には同じだとは思います)(間…

Adam

Adam [1] を chainer で実装しました。 Adam の説明 少ない時間・空間計算量で高い性能を出すということで、深層学習の分野で最近よく使われている最適化手法です。 をパラメータに取る関数 の(期待値)最小化を考えます。 の に対する勾配を とします。 一…