A free resume builder that lets you create a professional resume in minutes. We make it easy to build a resume online, so you can get hired. Create Your Resume

本日,PFI セミナーにて「乱択データ構造の最新事情 −MinHash と HyperLogLog の最近の進歩−」というタイトルで話をさせてもらいました.スライドは以下になります. Ustream の録画もあります. http://www.ustream.tv/recorded/48151077 内容としては,以下の操作を効率的に行うための集合に関するデータ構造 (Sketch) の最近の進歩を紹介しました. 集合の類似度の推定 (Jaccard 係数) 集合異なり数の推定 (distinct counting) どちらも重要かつ基礎的な操作で,b-bit MinHash や HyperLogLog など,既に実用的な手法が提案されており,実際にも使われています.しかし,2014 年になって,Odd Sketch や HIP Estimator という,これらをさらに改善する手法が立て続
1 Prefix Sums and Their Applications Guy E. Blelloch School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213-3890 35 36 Chapter 1. Prefix Sums and Their Applications 1.1 Introduction Experienced algorithm designers rely heavily on a set of building blocks and on the tools needed to put the blocks together into an algorithm. The understanding of these basic blocks and tools is th
Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms by Maged M. Michael and Michael L. Scott This paper appeared in the proceedings of PODC '96. PDF file (180KB). Pseudocode. Abstract Drawing ideas from previous authors, we present a new non-blocking concurrent queue algorithm and a new
以前第一回2048AIコンテスト 結果報告という記事を見かけて,興味がわいたので 2048 の AI について調べてみました. 2048 は 4x4 のパズルゲームで,ルールは実際にやってもらったほうが分かりやすいぐらい簡単なものですが,テンポが良くて結構ハマりました. 今回は公開されている 2048 の AI の中で一番メジャーっぽいものを TokyoVim #19 で読んでみました. ov3y/2048-AI - Github 小並感 平穏な感じ AI でした. js/grid.js に各評価関数の定義があり,js/ai.js に探索を行うメインの部分の処理があります. 評価関数 良い手を選ぶには,ある盤面が与えられたときにその盤面がどれだけ有利な状態かを知る必要があります.それを知るために必要なのが評価関数で,今回だと 2048 の 4x4 の盤面を引数に取り,その盤面のスコアを返す
最近、簡潔データ構造(Succinct Data Structure)がじわじわ人気が出てきているように感じるので入門の入門、くらいの記事を書いておく。 この記事では簡潔データ構造において最も基本的なデータ構造である完備辞書(Fully Indexable Dictionary)について説明する。 新しい概念が出てきた時に気になるのは「どうやって実現するのか」「それができると何が嬉しいのか」という2点だと思う。 前者についてはこの記事(http://d.hatena.ne.jp/takeda25/20140201/1391250137)がわかりやすいのでここでは述べない。この記事では「完備辞書があると何が嬉しいのか」について説明する。 完備辞書とは 完備辞書はrankおよびselectという操作が定数時間で実行できるビット列のこと。rank(i)はi番目のビットより前にいくつ1があるかを返
By choosing the right language for the job, developers can optimize productivity and project outcomes. 3. Linux and Open Source for Developers Linux remains a developer’s paradise with its flexibility, tools, and open-source support. Top Tools for Developers in Linux tmux: Terminal multiplexer for managing multiple sessions. htop: A process viewer for real-time resource monitoring. Docker: For con
Here is a map of points in a space. The space is divided into four rectangles. Each of those rectangles is divided such that it contains a maximum of four children. Each child is either a point or a smaller rectangle. Click a rectangle and count its children to verify. None of them will contain more than four points or direct subrectangles. Here is a graph of a quadtree representing the rectangles
Special thanks to a_magical_me, who started analyzing the algorithm, let me use their notes and then provided me with an assembly dump to pick up where they left off. The hacking genius is mostly theirs. If you were an avid player of Red, Blue and Yellow, you may have read the other capture mechanics sections and fleetingly wondered, "But what about the times in R/B/Y when it would say, 'You misse
Unlocking Success in Tech Education: Why Code Fellows Leads the WayBy Mitchell Robertson on September 29, 2023 In today's fast-paced digital world, technical skills have become the currency of success. Whether you're a recent high school graduate looking to kickstart your career, a seasoned professional seeking a change, or an employer searching for top talent, the choice of who to partner with fo
PourOver is a library for fast filtering and sorting of large collections—think 100,000s of items—in the browser. The PourOver Book Front Matter - What is PourOver PourOver is a library for simple, fast filtering and sorting of large collections – think 100,000s of items – in the browser. It allows you to build data-exploration apps and archives that run at 60fps, that don’t have to to wait for a
平方数とは、ある整数の平方(=二乗)であるような整数のことを言います。つまり、0,1,4,9,16,...が平方数ということになります。 ところで、与えられた整数が平方数かどうかを判定するにはどうすれば良いでしょうか。与えられた整数の平方根の小数点以下を切り捨て、それを二乗して元の数になるかどうか、というのがすぐ思いつく実装です。 <?php function is_square($n) { $sqrt = floor(sqrt($n)); return ($sqrt*$sqrt == $n); } しかし、平方根の計算は比較的重い処理です。もっと高速化する方法は無いのでしょうか。 多倍長整数演算ライブラリGNU MPには平方数かどうかを判定するmpz_perfect_square_p関数が存在します(PHPでもgmp_perfect_square関数として利用できます)。本稿ではこの実装
When I went to university me and some friends spent time on practising algorithm implementations for the national programming contests that were held each year. The concept was (and still is) to solve about ten problems in a couple of hours time using a programming language of choice. The source code is submitted to an automatic judge that compiles the code and feeds the executable with test data
A few years ago—back in high school—I spent a little while writing programs to automatically generate mazes. It was a fun exercise and helped me come to grips with recursion: the first time I implemented it (in Java), I couldn’t get the recursive version to work properly so ended up using a while loop with an explicit stack! Making random mazes is actually a really good programming exercise: it’s
A Random Walk Through Geek-Space Brain dumps and other ramblings from Sebastian Sylvan Robin Hood Hashing should be your default Hash Table implementation 8/May 2013 There’s a neat variation on open-addressing based hash tables called Robin Hood hashing. This technique isn’t very well-known, but it makes a huge practical difference because it both improves performance and space utilization compare
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く