表を使って状態遷移を表現することもできる。transition[][]のような遷移表を作っておき、state =transition[state][input]のように現在の状態と入力から次の状態を計算するようにしておけばプログラムは簡単になる。 正確な遷移表を作ることだけ注意すれば良い。
曖昧検索は便利なものである。「ピテカントロプス」の綴りは難しいが、最近のGoogle検索は曖昧検索対応しているようで、「pitekantoropusu」で検索してもちゃんと直立猿人(Pithecanthropus)がみつかる。しかし「musogurusuki-」でムソルグスキーを検索できないようなので、改良の余地はあるのかもしれない。 Unix系の計算機システムやプログラミング言語では曖昧な検索を行なうために正規表現を使えるものが多い。正規表現とは検索パタンとして文字列の繰り返しや文字列の選択を指定できるもので、a*という表現で「0回以上のaの繰り返し」というパタンを指定したり、(abc|def)という表現で「abcまたはdef」を指定したり、a.cという表現で「aac, abc, acc, ...」を指定したりできる。たとえばpi.*ca.*puのような曖昧なパタンを指定すれば辞書からP
ゴールデンウィーク中、Appleがオープンソースとしてリリースした分散データベース FoundationDB のドキュメントを読んでいました。なかなか面白いデータベースだと思うのでこれについては別途書きたいですが、それはそれとしてFoundationDBでは、分散環境下でACIDトランザクションを実現するために、分散合意プロトコルとして有名なPaxosを採用しているようでした。 PaxosはGoogleのChubbyやCassandraのLight Weight Transactionなどで使われていますが、僕はいまだにPaxosがどのように動作するのかあまりよく分かっていませんでした。良い機会だと思い、FoundationDBの技術を理解するためにも連休の後半でLeslie LamportによるPaxosの論文の一つ Paxos MadeSimple を読み、何となくわかった気持ちにな

Task Queue Implementation Pattern EkaterinaGonina (Author), Jike Chong (Shepherd), UC Berkeley ParLab Name Task Queue Problem Some applications can be broken down into variable length tasks to be executed concurrently. How do we efficiently load balance the tasks among processing elements in such applications? Context Many problems can be expressed as a set of tasks where the number of tasks is
Cryptography Designs Hash functionsBLAKE,BLAKE2 (RFC 7693),BLAKE3 Pseudorandom function SipHash (used inLinux,Rust, Wireguard, Bitcoin,etc.) Post-quantum signatures PRUNE-HORST, Gravity-SPHINCS, SPHINCS+ (FIPS 205, SLH-DSA) Password Hashing Competition & winner Argon2 (RFC 9106) Misc Substackblog awesome-post-quantum Murphy's laws ofcryptography Research satires Fiction Books
Per theJava documentation, the hash code for a String object is computed as: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] using int arithmetic, where s[i] is theith character of the string, n is the length of the string, and ^ indicates exponentiation. Why is 31 used as a multiplier? I understand that the multiplier should be a relatively large prime number. So why not 29, or 37, or even 97?
こんにちは。インフラストラクチャー部 SRE グループの吉川 ( @rrreeeyyy ) です。今期オススメのアニメはツインエンジェルBREAK です。 普段の業務並びに趣味の一環として、サーバのモニタリング環境の調査や改善に取り組んでいます。 そこで本稿では、モニタリングのコンポーネントの一つとして外すことが出来ない、時系列データベースの基礎知識に関して紹介します。 そもそも時系列データ・時系列データベースとは? 時系列データというのは、特定の時間ごとに何らかの値を取得した際の、取得した一連の値を指します。 例えば、以下のようなフォーマットをしたデータなどは時系列データにあたるでしょう。 timestamp1,key,value1 timestamp2,key,value2 timestamp3,key,value3 : 時系列データベースとは、上記のような時系列データの保存・処理に

リクルートデータ組織のブログをはじめました。※最新情報はRecruit DataBlogをご覧ください。 Recruit DataBlogはこちら 汎用人型雑用AIの stakaya です。 たまたま数年前に社内のBLOGに書いたABテストのロジックのまとめ&比較記事を発掘したので、 このまま眠らせているのはもったいないぞと、 圧倒的もったいない精神を発揮し、シェアさせていただきます。 あの頃は私も若かった。 社内では”堅物・真面目・一途”で有名なものでして、下記文章がお硬いのはご勘弁ください。 はじめに本記事は、施策の評価手法としてしばしば用いられるA/Bテスト(A/B testing)について、できる限り背後にある仮定を明記した上で、まとめたものである。 A/Bテストとは、主にインターネットマーケティングにおける施策の良否を判断するために、2つの施策(通常、A・Bと記載)を比較す

読みやすさにはいろいろな定義があると思いますが、これが一番シンプルでいいんじゃないかな~という定義をしてみたいと思います。 ネタ元は、Readability: a one-hundred-year-old field still in his teens(のスライド5~6枚目)です。ReadabilityはLegibilityとComprehensibilityと異なる、ということが示されていますが、doksyo-tekは、むしろ、これら3つを併せて(日本語で言うところの)読みやすさになるだろうと思っています。つまり、読みやすさとは、次の3要素からなると言えないでしょうか。 読みやすさ: Legibility:対象の文の、配置(文字の大きさ・行間・フォントなど)のこと Comprehensibility:対象の文を、読んでわかった・理解したという度合のこと Readability:対象の文

こんにちは!はてなアプリケーションエンジニアの id:takuya-a です。 みなさんは、このような疑問をもったことはありませんか? grep はどのように文字列を検索しているのか? MeCab はどうやって辞書を高速にルックアップしているのか? パーサやコンパイラを作りたいけど、何から始めればいいのか?本稿では、「文字列アルゴリズムとはどんなものなのか?」「なぜ重要なのか?」「何を知っておくべきか?」「どうやって勉強すればいいのか?」といった疑問にお答えしていこうと思います。 文字列アルゴリズムの意外な応用や、モチベーションを保ちやすい勉強のしかた、文字列アルゴリズムを勉強するために行った社内での取り組み、実装するときのコツといったトピックについても触れています。 このエントリは、はてなエンジニアアドベントカレンダー2016の22日目の記事です。昨日は id:syou6162 さんに

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? オバマ大統領の再選に大きく寄与したことで大きな注目を集めているA/Bテスト。A/Bテストを導入した、することを検討している、という開発現場も多いのではないだろうか。 そんな中、Web上で次のような議論を見つけた。 20lines of code that will beat A/B testing every time Why multi-armedbandit algorithm is not “better” than A/B testing 一言でまとめると「A/Bテストよりバンディットアルゴリズムの方がすごいよ」「いやいやA

About the #data-structures series The #data-structures series is a collection of posts about reimplemented data structures inJavaScript. If you are not familiar with data structures, a quick introduction and the full list of reimplemented data structures can be found in the introduction post of the series on data structures inJavaScript. If you feel comfortable with the concept of each data stru

Enjoy watching, trying, and learning with thisguide to algorithms. The wide-ranging field of algorithms is explained clearly and concisely withanimations. Deepen your understanding by exploring concepts in "Sim Mode". Also includes algorithms closer to home involving encryption andsecurity. Come on, let's take a journey into the world of algorithms! ==== Categories and IncludedTopics ==== [ So
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く