タグ

algorithmとprogrammingに関するneumannのブックマーク (4)

  • Bonanzaのソースが公開された! - やねうらおブログ(移転しました)

    ■ Bonanzaのソースが公開された ついにBonanzaのソースが公開された。パラメータを学習させる部分は無いが、思考部はまるごと公開されている。 19回コンピュータ将棋選手権使用可能ライブラリ http://www.computer-shogi.org/library/ ■ Bonanzaのソースの内容は? 1時間ほどかけてざっとソースを読んでみたが、ソースはCで書かれており(C++ではなく)、C++templateを駆使したGPS将棋のソースとは対照的。GPS将棋のソースに比べれば格段に読みやすく、かつ、素人くさい。率直かつ正直に言わせてもらえれば、GPS将棋のソースのほうが何倍も参考になる。 ただ、Bonanzaのソースの ・どんな評価因子を採用しているのか ・ビット演算のテクニック は注目に値すると思う。あとは、GPS将棋に比べてソースが簡素なので将棋プログラムの思考部の書き

    Bonanzaのソースが公開された! - やねうらおブログ(移転しました)
    neumann
    neumann 2009/01/29
    プログラマとしての自分の存在意義を否定するような結果
  • ビットを数える・探すアルゴリズム

    作成日:2004.05.04 修正日:2012.09.01 このページは 2003年の9/11、9/28 の日記をまとめて作成。 はじめに PowerPC 系や Alpha などには population count と呼ばれるレジスタ中の立っているビット数を数える命令が実装されている。 集合演算を行うライブラリを実装したい場合などに重宝しそうな命令である。 職場でこの population count 命令について話をしているうちにビットカウント操作をハードウェアで実装するのは得なのか?という点が議論になった。 CPU の設計をできるだけシンプルにするためには、複雑で使用頻度の低い命令は極力減らした方がよい。 例えば SPARC は命令セット中にビットカウント演算があるが、CPU 内には実装しないという方針をとっている(population 命令を実行すると不正命令例外が発生し、それを

  • 定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup

    このパートでは,プログラミングを勉強するうえで欠かせないアルゴリズムの中でも定番中の定番を紹介します。ソート(並べ替え)やサーチ(検索)などの機能は今では標準のライブラリとして提供されています。実用的なプログラムを作るときにそのものずばりをいちいち書く機会は少ないかもしれません。しかし定番のアルゴリズムは,様々に形を変えて普段のプログラミングに登場します。 解説を読んで仕組みがわかったら,ぜひそれをプログラムにしてみてください。読んだだけではプログラムを書けるようにはなりませんし,プログラムを書いてみて初めて,実は十分に理解できていなかったと気付くことがよくあります。しかもアルゴリズムは特定のプログラミング言語に依存しないので,一度身に付ければ,後でどんな言語を学ぶ場合でも役に立ちます。 1番目から6番目まではソートのアルゴリズム,7番目から9番目まではサーチのアルゴリズムです。一つひとつ

    定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup
  • 高度プログラミング演習(九州大学全学共通教育科目)の説明資料

    実践プログラミング 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]

    neumann
    neumann 2006/04/29
    CとC++プログラミングに関するいくつかの例題と解説.単なるプログラミングテクニックや文法の解説ではなく,背後にある考え方の習得(アルゴリズム,データ構造,数学など)を重視している.
  • 1