タグ

algorithmに関するTrapezoidのブックマーク (9)

  • pthread でキューを書いてみる - IT戦記

    この記事は全然ダメだったようです。 こちらに新しく書き直しました。 http://d.hatena.ne.jp/amachang/20080617/1213694238 こんな感じになった #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <pthread.h> static int* q; static int n; // 次に入れるインデックス static int l; // 次に出すインデックス static int s; static pthread_mutex_t m; static pthread_cond_t c; void initQ (size_t size) { n = 0; l = 0; s = size; // キューの領域確保 q = (int*)malloc(s * size

    pthread でキューを書いてみる - IT戦記
  • あの福井市の小学生、その驚くべき発見とは (3) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    (前のエントリーの続きです。) ●面積公式になじむ まずは、 面積 = 内部点の個数 + 周囲の長さ/2 - 1 がどうやら成立しそうだという“感じ”をつかんでおきましょう。(“感じ”だけ。) 内部点が十分にあるようなタイル領域、つまり、細くなくて大きなタイル領域の場合、内部点を勘定して面積の近似値にするのは悪い考えではありません。次の例だと、(僕の勘定が間違ってなければ)内部点が60個、面積は81(タイルが81枚)です。領域をもっと拡大すれば近似の精度は上がります。 円の面積(下の図は1/4だけ描いてあります)の場合、タイル領域で近似し、その内部点を勘定する方法で割といい近似値が得られます*1。 しかし、細い領域の場合は、そもそも内部点がなかったりするので、内部点の個数で面積を近似するわけにはいきません。次の細長い長方形で見てみると、面積の値は長い辺の長さと同じです。眺めていると、面積

    あの福井市の小学生、その驚くべき発見とは (3) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • あの福井市の小学生、その驚くべき発見とは (2) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    (前のエントリーの続きです。) 面積 = 内部点の個数 + 周囲の長さに依存する数 の「周囲の長さに依存する数」の予測はつきましたか? … … … これは、「周囲の長さ/2 - 1」となります。結局、面積を求める公式は、 面積 = 内部点の個数 + 周囲の長さ/2 - 1 中藤小学校の先生が出した宿題の場合、周囲の長さが16だったので、「周囲の長さ/2 - 1」の部分が「16/2 - 1 = 8 - 1 = 7」となり、 面積 = 内部点の個数 + 7 だったわけです。 下の図は、僕が方眼紙に描いてみた少し複雑な例です。確かに、「面積 = 内部点の個数 + 周囲の長さ/2 - 1」となっていますよ。 特に、宿題の例(e)のように、内部点をもたない“細い図形”のときは、 面積 = 周囲の長さ/2 - 1 となり、面積は周囲の長さだけで決まる(そして逆に、周囲の長さは面積だけで決まる)ことにな

    あの福井市の小学生、その驚くべき発見とは (2) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • あの福井市の小学生、その驚くべき発見とは - 檜山正幸のキマイラ飼育記 (はてなBlog)

    みなさん、お待たせいたしました。発表いたします。 なにを発表? -- ことの発端は、「福井市の小学生が驚くべき発見」をまず読んでくださいませ。 読みましたか? はい、では、いきます。 ●中藤小学校の先生が言いたかったこと 前のエントリーでは、図を少し縮小して貼っていたので、以下のリンクをクリックして原寸大の図を脇に表示しておいてください。 図を別ウィンドウで表示 (a), (b), (c), (d), (e)の5つの例で、周囲の長さはすべて16です。しかし、面積は異なります。念のために表にまとめておけば: \ (a) (b) (c) (d) (e) 周囲の長さ 16 16 16 16 16 面積 16 15 14 13 7 小学校の先生が言いたかったことを、(子供向けじゃなくて)大人の言葉で表現すれば次のようになります。 面積が周囲の長さから求まるなら、 面積 = f(周囲の長さ) という

    あの福井市の小学生、その驚くべき発見とは - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Trapezoid
    Trapezoid 2008/04/22
    やばいたのしー
  • Libicpc - nya3.jp

    libicpc チーム kkntkr / Unknown による、ACM-ICPC 向けのアルゴリズムの実装をまとめたページです。 基礎 テンプレート マクロ 計算 ビット演算 実数比較 幾何 基礎 データ構造 内積・外積 回転方向関数 射影 面積・体積 円と円の共通部分 多角形の面積 交差 円と円の交点 円と直線の交差判定 円と直線の交点 凸多角形と線分の包含判定 多角形と点の包含判定 直線と直線の交差判定 直線と直線の交点 直線と線分の交差判定 線分と点の交差判定 線分と線分の交差判定 距離 最遠点対 直線と点の距離 直線と直線の距離 直線と線分の距離 線分と点の距離 線分と線分の距離 多角形 凸包 凸多角形のクリッピング その他 アレンジメント ダイス 三次元幾何 直線と直線の距離 グラフ 基礎 データ構造 最短路 Bellman-Ford Dijkstra Warshall-Flo

  • コンピュータ囲碁におけるモンテカルロ法 - やねうらおブログ(移転しました)

    オセロ、チェスや将棋、囲碁のようなゲームは終局状態は簡単に定義できる。「こういう形になればゲームセットである」と判定したり、その状態の先手の勝ち負けを判定するプログラムは簡単に書ける。 だけど、ゲームの途中でどちらが有利なのかを判断させるためには、適当な評価関数を用意しなければならない。これらのゲームに共通してそういう性質がある。 そのなかでもコンピュータ囲碁はそれらのプログラムのなかでも最も難しいとされている。うまい評価関数を作成すること自体が難しい。 将棋ならば駒を得しているかだとか、王のまわりは安全かだとか駒の働きはどうかだとかそういったパラメータを導入する。それらのパラメータは熟練したプレイヤ(人間)が経験的に知っているものであり、ゲーム終了の局面から何らかの方法で逆算したものではない。 序盤で王を囲っておかないと、終盤で相手に駒を渡したときに詰みやすいが、いまのコンピュータ将棋

    コンピュータ囲碁におけるモンテカルロ法 - やねうらおブログ(移転しました)
  • lucille 開発日記 » Flash sort

    http://www.neubert.net/FSOIntro.html I think flash sort algorithm( O(N) time complexity ) is one of the fastest sorting algorithm in the world. Flash sort というソートアルゴリズムが、なかなかよさげです。 紹介文には、『クヌースは「その場での(in-situ, つまり extra なメモリ領域がいらない)ソートアルゴリズムは、平均して O(n log n) 時間を要するだろう」という予測をしたが、しかしこれはもうハズレである。新しいアルゴリズムであるこのフラッシュソートは、 O(n) 時間のその場でのアルゴリズムである』とあるくらいですから、なんとも”スゴ味”が伝わってきます。 ソートのアルゴリズムといえば、 o クイックソート(+ 挿

  • 高度プログラミング演習(九州大学全学共通教育科目)の説明資料

    実践プログラミング CとC++プログラミングに関するいくつかの例題と解説. 単なるプログラミングテクニックや文法の解説ではなく, 背後にある考え方の習得(アルゴリズム,データ構造,数学など)を重視して いる. プログラムをじっくり眺めそこから技法を学び取る. 最大値 [HTML] 曜日の計算 [HTML] 平均値,分散 [HTML] 2次方程式の解 [HTML] 最小自乗法 [PPT], [HTML] 待ち行列シミュレーション [PPT], [HTML] アーランの即時式モデル [PPT], [HTML] 行列のLU分解 [PPT], [HTML] ニュートン法による非線型方程式の解 [PPT], [HTML] 数値積分 [PPT], [HTML] 2分探索木 [PPT], [HTML] ヒープソート [PPT], [HTML] クイックソート [PPT], [HTML]

  • ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) ってなんですか? [POPFile Documentation Project]

    ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) ってなんですか? ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) という言葉は、POPFile や類似のメールフィルターの議論においてよく使われます。これらはたいていの場合、数学の公式のことを言っています。 Thomas Bayes は 1700 年代に確率論を研究した人で、彼の業績は ベイズ統計(Bayesian Statistics)として知られています。そして、この方法は、最近メールフィルタリングの分野でよくとりあげられるようになってきました。それはグループの異なるメッセージを分類するのに非常によい成績を発揮するからです。 POPFile はベイズの定理を用いて、あるメールが work、personal、spam のどのバケツに分

    ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) ってなんですか? [POPFile Documentation Project]
  • 1