Topcoder is a crowdsourcing marketplace that connects businesses with hard-to-find expertise. The Topcoder Community includes more than one million of the world’s top designers, developers, data scientists, and algorithmists. Global enterprises and startups alike use Topcoder to accelerate innovation, solve challenging problems, and tap into specialized skills on demand.
ページ置換アルゴリズム(ページちかんアルゴリズム)とは、仮想記憶管理としてページング方式を使用するコンピュータのオペレーティングシステムにおいて、空き物理ページが少ない状態で新たなページを割り当てなければならないときにどのページを「ページアウト(スワップアウト)」するかを決定する方法を意味する。これはページフォールトが発生したときに使用可能なフリーなページが存在しないときに発生する。厳密には発生条件はシステムの種類や設定によって異なるが、フリーなページが全く無い場合か、あらかじめ設定したしきい値よりもフリーなページ数が少ないときに発生する。 以前にページアウトすべきページとして選択され置換されたページに再度アクセスが発生したら、そのページをページインする必要がある。そして、これにはI/Oの完了を待たなければならない。この、ページインを待つ時間の累計が小さいほどページ置換アルゴリズムが優秀で
先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解
2012年01月08日20:30 カテゴリアルゴリズム百選Math algorithm - ソート済み配列をソートしなおすべからず 珠玉のプログラミング Jon Bentley / 小林健一郎訳 ぐぬぅ。男子ゆえ女子をこじらせようがないとはいえ、風邪が普通にこじれている。 というわけでアルゴリズムのことなどつらつら考えていた。 高速な安定ソートアルゴリズム “TimSort” の解説 : Preferred Research Timsort - Wikipedia, the free encyclopedia 要はソートすべき配列中にすでに存在する秩序を活用するのがtimsortなのだと。 だけどすでにソート済みの配列を活用するなら、こういう方法もありではというわけでentry。 If it ain't broke, don't fix it. ソート済みの配列に要素を加えるなら、要素を加
Last year when I rounded up the algorithms preprints on the cs.DS section of the arXiv, there were 643 preprints there. This year, there are 798. So the growth rate is slowing a little, down to around 5/4 from a higher rate of 3/2 from 2008 to 2009, but in absolute numbers cs.DS is still growing significantly. Here is a very personal top 10, in chronological order. The same ground rules as last ti
あなたならどう答えますか? 我こそはと思う方、腕試ししたい方、あなたのちからを世の中に示してみませんか? 2012年2月6日(予定)にこちらのページで発表される問題を解き、あなたの解答をだれよりも早くネットに公開してください。 詳細は後日、こちらのページにてご案内します。 ソニーは小型化・軽量化といったハードウェアの開発が得意な会社、という印象を持っている方もいるでしょう。 しかし、ソフトウェアやネットワークサービスを通じて、新たなユーザー体験をお客さまに提供することもソニーの重要なミッションです。 ソフトウェアエンジニアが活躍する場は数多くあり、これからも拡大します。 ソニーは、高いソフトウェア開発力を持つエンジニア(ソフトウェアスペシャリスト)を必要としています。 2013年新卒採用では、「ソフトウェアスペシャリスト」向けの選考コースを新設し、ソフトウェアの専門性を発揮できる
3つの角が全て整数度の三角形で、互いに相似ではないものを考える。 1° / 1° / 178° 1° / 2° / 177° ... 1° / 89° / 90° 2° / 2° / 176° 2° / 3° / 175° ... 60° / 60° / 60° これらの三角形の一番長い辺の長さが1であるとして、xy平面上の1辺の長さがLの正方形の内部(辺を含む)に互いに重ならないように配置することができたとき、Lを可能な限り小さくするような三角形の配置を与えよ。 <詳細ルール> ■ 2つの三角形が頂点ないし辺のみを共有する場合、その2つの三角形は重なっていないものとする。 ■ 回答は以下のように三角形の3つの頂点A(x1, y1), B(x2, y2), C(x3, y3)のxy座標を半角空白文字で区切って x1 y1 x2 y2 x3 y3 と出力したものとし、
~lloyd You may have been redirected here because Monash University closed down the www.cs.monash.edu.au and www.csse.monash.edu.au web-servers in 2014, and the users.monash.edu.au web-server in 2024. You can probably find what you are looking for here [cantab.net/users/mmlist/] (a Cambridge University (cantab) Users web-site), including Publications, Bibliography, Bioinformatics, Algorithms and Da
先日、Bloom Filter を利用して重複部分をフィルタすることで処理を簡潔にする、という記事を書きました。実際、3, 4秒の改善が図れたということも書きました。でも、普通の設計方法では、std::setより遅くなります。ご注意ください。 原因は、2つあります。ハッシュ値の計算 (std::string → size_t) が遅い。ハッシュ関数の個数が多い。std::set は、平衡二分木で実装されています。dblp.xml 内の著者数は、だいたい72万なので木の高さは19くらいになります。一方で、Bloom filter では、false positive probability を1%にするとハッシュ関数の個数は7、0.1%にすると10程度になります。std::setでの「最大19回の分岐処理」と Bloom filter での「いつも10回ハッシュ値計算」だと、totalでみて前
最新の20件2025-03-20 競馬に関するアンケート 2024-05-10 支持率と勝率の関係とは? 2018-07-17 The Songs Festivals Of Portland, Oregon Music In The City 2018-03-01 KeHa Tickets Usa Headlining Tour 2018-02-13 2010 West Virginia Condition Fair Concerts 2012-11-17 ま女神のページ in English 2010-03-16 TARGET frontier JV 2010-03-11 Microsoft Excel 2015-12-23 コメント/分割コロガシのページ 2015-06-12 リンク集 2015-04-01 大庭和弥 2014-11-11 騎手別詳細分析 2014-07-25 mime
State モナドと疑似乱数で書いたように、遅延評価が利用できる言語では、無限数列が扱えるので、疑似乱数を使う際に状態を持たなくてもよい。その一例として、モンテカルロ法による円周率の近似を挙げてみる。 XY 平面に単位円を考える。 radius :: Double radius = 1.0この円がぴったり収まる大きさ1の正方形を描く。ここで、第一象限のみを考える。正方形のうち、第一象限にある部分の面積は、1/4。第一象限にある円の面積は、全体の 1/4 だから π/4。 モンテカルロ法では、第一象限の正方形の中に、ランダムに点(x,y)を打つ。たくさんのランダムな点を、疑似乱数から生成しよう。そのとき、状態を持つのではなく、乱数の無限数列を生成する。 import Random randomSeq :: Int -> [Double] randomSeq seed = randomRs (
確率法則を用いて問題を解くモンテカルロ法(Monte Carlo meyhod)では、質のよい乱数が必要である。 C言語で用意されている関数randと、高品質で高速に乱数を生成できるとして知られるメルセンヌ・ツイスタを利用して、円周率を評価してみる。 また、その際のアルゴリズムとして「あたりはずれ法」と「粗いモンテカルロ法」を用いて計算する。 図1のような単位円の第1象限領域の面積をモンテカルロ法にて求め、 解析的に求められる面積$\pi/4$と比較することによって、円周率の評価を行うことにする。 図1.単位円の第1象限領域 あたりはずれ法 あたりはずれ法とは、面積を評価したい領域$S_A$を面積が既知の領域$S$で囲み、 領域$S$上に分布が一様になるように$N$個の点を降らせる。 領域$S_A$上に落ちた点の数が$N_A$であれば、$S_A$の面積は、 で評価することができる。 図1の
description 画像処理について。 ソースは24bitのビットマップ(及びその互換)、EclipseによるJava環境(org.eclipse.swt.graphicsとjava.utils.Arrays。具体的にはこんな感じ)を前提に記述していますが、ピクセル毎に入出力できる環境であれば任意に読み替えて問題ありません。 具体的には、画像から幅、高さ、指定場所の画素といったものが利用出来、なおかつそれから画像を生成できることが条件となります。 低機能でも良ければC++用の簡易クラス(.cppファイル、.hファイル)とかあります。 ただし、簡易クラスの方では色データはRGB纏まった形で取得するのではなくて、GetR等のように一つ一つの色を取り出す必要がありますので、以下のソースコードそのままでは使用できない場合(や、面倒な前処理が不要となる場合)があります。 なお、ソースそれ自体は適
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く