これはなに? はじめに AGCあれこれ Temporary I HOPEHOPEHOPE ASTRONAUT NOW LOOK WHERE YOU ENDED UP ふと気になりました いい時代ですね 1201&1202エラー なにそれ? カ、カルマンフィルターだー!!! カルマンフィルターの開発経緯 その他面白コメントアウト集 TRASHY LITTLE SUBROUTINES(つまんないサブルーチン) NUMERO MYSTERIOSO(神秘の数字) OFF TO SEE THE WIZARD COME AGAIN SOON HONI SOIT QUI MAL Y PENSE(悪意を抱く者に災いあれ)、NOLI ME TANGERE(私に触れるな) PINBALL_GAME_BUTTONS_AND_LIGHTS.agc おわりに 反省 参考文献 これはなに? この記事はeeic Adv
こんにちは!はてなアプリケーションエンジニアの id:takuya-a です。 みなさんは、このような疑問をもったことはありませんか? grep はどのように文字列を検索しているのか? MeCab はどうやって辞書を高速にルックアップしているのか? パーサやコンパイラを作りたいけど、何から始めればいいのか? 本稿では、「文字列アルゴリズムとはどんなものなのか?」「なぜ重要なのか?」「何を知っておくべきか?」「どうやって勉強すればいいのか?」といった疑問にお答えしていこうと思います。 文字列アルゴリズムの意外な応用や、モチベーションを保ちやすい勉強のしかた、文字列アルゴリズムを勉強するために行った社内での取り組み、実装するときのコツといったトピックについても触れています。 このエントリは、はてなエンジニアアドベントカレンダー2016の22日目の記事です。昨日は id:syou6162 さんに
私が以前Haskellで作成した(割と自己満足な)kazura-queueという比較的高速なキューのライブラリがあります。 このライブラリを作るときに考えたアレコレを書いてみたいと思います。 前提 ここでいうキューって何? データ構造としてのキュー(Sequenceみたいな)や分散処理用のキュー?(RabbitMQみたいな)ではなく、並行処理のためにスレッド間の部品として使うようなキュー(Chan(やTQueueやTChan)みたいな)を意図しています。 ここではChanが持っているキューとしての性質をざっと書き出してみましょう。 キューに入るデータの型は任意 Chan aという型で表現できる範囲で好きなデータを入れることができる。 FIFO キューなのだから当たり前といえば当たり前かもしれませんが一応。 スレッドセーフ 複数のスレッドが同時に書き込もうとしても問題が起きない。1 複数のス
この記事はCompetitive Programming Advent Calendar 2016(その2)の12月15日の記事です。 www.adventar.org はじめに 基本事項 1点に対する変更クエリ・区間に対する質問クエリ Range Sum Query Range Minimum Query 区間に対する変更クエリ・1点に対する質問クエリ Range Add Query Range Update Query 区間に対する変更クエリ・区間に対する質問クエリ RSQ and RAQ RMQ and RUQ 応用例 Flipping Parentheses セグメントツリーにチャレンジしたくなったら 謝辞 はじめに 私はRMQのような典型的なセグメント木までは比較的容易に実装できるのですが,それよりも難しいクエリに対応したセグメント木を書くのは難しく感じています。とはいえ「区間に
この記事は、Competitive Programming Advent Calendar 2016 - Adventarの15日目の記事です。 この記事について 去年(2015年)の12月ごろ、「セグメント木が任意のモノイドに対して使えるという(当たり前のことが)明示的に書かれた日本語の記事がないなぁ」と思い、「(当時)来年のAdvent Calendarあたりに書こうか」と思ったので書きました。その後調べてみましたが、どうやらこの1年(2015年12月-2016年12月)で割と書かれたようでした。(この記事の意味とは…) 前述のように多数の記事がこの1年間で出たので、この記事は主にそれらへのリンクを貼り、場合によってコードを紹介することにします。 データ構造と代数構造 セグメント木 <=> モノイド 集合M、Mの要素eとその上の二項演算*があり、*が e * x = x * e = x
これは Competitive Programming Advent calendar 2016 その2 12月4日の記事として投稿します😊✨ はじめに はじめまして、こんにちは。@54k3yです。 競技プログラミングで使えそうな文字列アルゴリズムというタイトルですが、競プロ以外でも使えそうなものばかりで、どなたでも楽しんでいただけると思います。頑張って書きました、ぜひぜひ最後まで読んでください( *´艸`) かんたんな部分文字列検索 ナイーブな方法 まずはBrute Force、パターン一致が見つかるまで1文字ずつすべて調べあげていく方法です。目視で部分文字列を探すとき多くの人はこの方法をとっているのではないでしょうか?アルゴリズムというか力技です、実際にみてみましょう。 文字列 S="abracatabra" から パターン P="aca"を検索します。 *文字列Sの比較開始場所は必
この記事は Retty inc. Advent Calendar 13日目の記事です. 昨日はRyosukeMurai氏(@RyosukeMurai)のRettyでよく使うベイジアンフィルター(ベジタリアンフィルターではない)でした. こんにちは! Retty inc.のsakataです.これでRetty Advent calendar三本目(サンプルコードで使われているものは除く)のKotlin記事になります.そろそろRetty社内にKotlin激推し勢力がいることにうすうす気づき始めたでしょうか.みなさんKotlinは書いていますか?かわいいですよね.1 巷ではDeepLearningが流行っていますね.Rettyでも徐々に製品に活用されつつあります.DeepLearningではライブラリの関係でPythonやC++が採用されることが多い気がしますが,KotlinはかわいいのでAIも簡
コンピュータビジョンのライブラリOpenCVのアドベントカレンダーです。OpenCVの知られざる機能(マイナーとも言う)、こんなプラットフォームでOpenCVを動かした、分かりづらいバグに遭遇した、こんな便利な機能があるなどの情報を中心に書いてます。http://qiita.com/advent-calendar/2015/opencv (昨年のAdvent Calendar)あと、今年は昨年と違い執筆希望者多数で、以下の記事もAdvent Cale... 他の皆さんの内容とくらべてかなり簡単な内容です。 解決したい問題 仕事でWebサイトの開発・運用をしていたとき、サイトのリニューアル時のデザインがブラウザ間の挙動の違いによって崩れたり崩れなかったりして、何度もデプロイしては目視で確認したりしていました。 そのとき目視で確認するのが大変だったので楽にやりたい自動化したい、というのがやりた
こんにちは、Perl 6アドベントカレンダーの9日目の投稿になります。 今日は、拙作Algorithm::MinMaxHeapの紹介をしたいと思います。 Introduction Algorithm::MinMaxHeap はdouble-ended priority queueの実装です。[0] 一つの木構造の中に、降順と昇順の2種類のヒープが同時に入っているという、ちょっとおもしろいデータ構造をしています。 もう少し正確な言葉で言い換えると、これはノードがMin-Maxオーダーになっている木です: 偶数段目(図のMin level)にあるノードは、同じ偶数段目にある子のノードと値が同じかそれよりも小さくなっています。 奇数段目(図のMax level)にあるノードは、同じ奇数段目にある子のノードと値が同じかそれよりも大きくなっています。 MinMaxHeap Internals 代表的
(編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) (2016/12/11、いただきましたフィードバックをもとに翻訳を修正いたしました。) H.264は、動画圧縮コーデックの標準規格です。ネット上の動画、Blu-ray、スマホ、セキュリティカメラ、ドローンなどなど、今やあらゆるところでH.264が使われています。 H.264は注目すべき技術のひとつです。たったひとつの目標、つまりフルモーションビデオの送信に要するネットワーク帯域を削減することを目指した30年以上の努力の結晶なのです。 技術的な面でも、H.264はとても興味深い規格です。この記事では、その一部について概要レベルでの知識を得られることでしょう。あまり複雑だと感じさせないようにするつもりです。今回おはなしする概念の多くは動画圧縮全般にあてはまるものであり、H.264に限ったものではありません
お手軽にランダムなIDを取得したい時にUUIDはとても重宝します。 でもたまに、 「このID(UUID)ってぶつかることない?対策しなくて大丈夫?」 と聞かれることがあります。 それに対して、 「ウィキペディア先生がぶつからねえって言ってたから大丈夫だよ!(#゚Д゚)」 で切り抜けるのもそろそろ限界のような気がするのでちゃんと調べました。 (もちろんウィキペディア先生を頼りました!) 2つの理論 UUIDの衝突確率について考える上で次の2つの理論が重要になります。 鳩の巣原理 誕生日のパラドクス 鳩の巣原理 鳩の巣原理とは、 m個の入れ物にn個のものを入れるとき、n > m ならば少なくとも1個の箱には2個以上のものが入る 9個の巣箱に10羽の鳩が入る場合、必ずどれかの巣箱には2羽以上入ることになるということです!(ウィキペディア先生) 考えれば当たり前のことですが同様にして考えれば、 「
LOGIC What is it? LOGIC is a fully functional 4-bit calculator made entirely out of cardboard, hot glue and marbles. I built it with my little sisters for a science activity, it can add numbers from 0 to 15 for a maximum computable number of 30. We made it from scratch and at the time I didn't see any of the various kind of calculator that have been made using Lego, wood and other, so it's a compl
この結果を見て単語ベクトルが変わるとNGTの性能が変わってしまうように感じた方がいるかもしれません。しかし、実はこれらの単語ベクトルはデータの次元数や件数が違っているため、それぞれの条件をあわせてみる必要があります。興味がある方は論文を読んで見比べて欲しいと思いますが、ここで重要なことは、NGTが高い精度にも関わらず、せいぜい100ミリ秒程度で検索できるという規模感であるということです。その規模感を感じてもらうために、これらの実験結果をご紹介しました。この実験以外にも論文の中では単語ベクトルの応用としてアナロジーと呼ばれる合成ベクトルでの実験やその他の比較手法の比較、実験結果の考察などもありますが今回は割愛します。 これまで紹介した内容と同じような実験はLinux系のサーバーであれば公開しているExperimental softwareという実験プログラムを使うと簡単に試すことができます。
二分探索は、感覚的なわかりやすさに反してバグが入りやすいことで有名なアルゴリズムです。20 の教科書のうち 15 でバグっていたという報告もあるそうです。 実際、自分も書くたびにバグに苦しんできました。変な値を返すだけでなく、out of bounds アクセスや無限ループもよく起きます。一旦動いたと思っても、後になってバグが発症することも多く、たちが悪いです。 そこで、きちんとテストした二分探索のサンプルコードを自分のコピペ用に作ってみました。 動作仕様 (境界探索版) ソートした配列 a に対して、「値が c 以上になる範囲のうちの一番左のインデックス」を返す関数 bsearch_min を書きます。 a = [0, 1, 1, 1, 2, 2, 2, 3] p bsearch_min(a, 2) #=> 4 値が c 以上になる値がない場合は a.size を返します。空配列の場合は
今日は社内勉強会で「知っておくと便利な Exponential Backoff」という発表をした.前回の「知っておくと便利な Bloom Filter」に続いてのタイトルで「知っておくと便利な」シリーズを確立していきたい. 実は Exponential Backoff という名称を知ったのは結構最近のことで,以下の記事を読んでいて知った.発表の中で例に挙げた Fluentd は,エラー時に間隔を広げながらリトライするという仕組みがあり,それ自体は知っていたけど,それを Exponential Backoff と呼ぶということを知らなかった.Fluentd のコードを読んでいたら確かに Exponential Backoff と書いてあるところがあった.ほえー! yoshidashingo.hatenablog.com 発表資料 補足 AWS SDK を使うなら Exponential Ba
微分可能な神経機械? Google DeepMindがNatureに投稿した論文「Hybrid computing using a neural network with dynamic external memory」が、なんだかヤバそうな香りがします。 公式の紹介記事「Differentiable neural computers」では、プラトンの記憶論から話が始まりますし、論文では脳の記憶を司る海馬に喩えていたりして、なかなか格調高いです。単なるニューラルネットワークの性能改善に留まらず、哲学や神経科学の観点からも理想の人工知能に一歩近づくことができたよ、これは新しいコンピュータの在り方の発明なのではないか、という気概が感じられます。 仕組みとしては流行りのAttentionという概念が入っていて、メモリを表す行列と、それを選択的に操作しながらベクトルを入出力するコントローラがありま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く