ブックマーク / ja.wikipedia.org (62)
-
区間木またはインターバル木︵英: Interval tree︶は、区間を保持するための木構造のデータ構造の一種。計算幾何学のアルゴリズム。特に、指定された区間や点にオーバーラップする全ての区間を探すという問題を効率的に解くことができる。例えば、表示されている地図内に見えている全ての道路を求めるとか、3次元のシーンで見えている全てのオブジェクトを求めるといった用途に使われる。似たものに区分木︵英: Segment tree, segtree︶があるが別物である。 基本的手法[編集] 単純なケースとして、区間が互いにオーバーラップしないなら、単純な2分木で表すことができ、クエリにかかる時間は O(logn) となる。しかし、区間同士がオーバーラップするなら、始点でソートする場合と終点でソートする場合で順序が異なることになるので、挿入時に2つの区間をどう比較すべきかが問題となる。素朴な方法とし
-
食事する哲学者の問題︵しょくじするてつがくしゃのもんだい、Dining Philosophers Problem︶とは、並列処理に関する問題を一般化した例である。古典的なマルチプロセスの同期︵排他制御︶問題であり、大学レベルの計算機科学課程にはほぼ確実に含まれている。 1965年、エドガー・ダイクストラは5台のコンピュータが5台のテープ装置に競合アクセスするという同期問題を提示した。間もなく、この問題はアントニー・ホーアによって﹁食事する哲学者の問題﹂に変形して語られることとなった[1][2][3]。 問題[編集] 5人の哲学者が食事したり、考え事をしたりしている。彼らの前には、真ん中にスパゲッティの入った大きなボウルが置かれた丸い食卓がある。その食卓には5枚の皿が置かれ、皿と皿の間にフォークが1本ずつ置かれている。︵近年では、食器を﹁フォーク﹂ではなく﹁箸﹂として紹介する例も見られる[4
-