タグ

2010年9月6日のブックマーク (7件)

  • ルービックキューブプログラム - 改め Objective Technician

    /*人工知能の授業で習った知識を総動員して書いた、3x3x3 のルービックキューブを解くCプログラム。 A*(エースター)探索、双方向探索、ヒューリスティック関数、ハッシュ関数の合わせ技。 人間がやるようなパターンをなぞる方法じゃなくて、常に最短手順を見つけることを保証する。*/ #include <math.h> #include <stdio.h> #include <stdlib.h> #define D 3 /*3x3x3のルービックキューブ。ここを4にしても4x4x4が解けるわけじゃない*/ struct node{ char surface[6][D][D]; /*ルービックキューブ各面の情報*/ unsigned int cost; /*今の状態に何手で来たかを各ノードに記憶*/ unsigned int heuristic; /*このノードのヒューリスティック値*/ uns

    ルービックキューブプログラム - 改め Objective Technician
    mnru
    mnru 2010/09/06
  • Scala 2.8 Collections API

    The Scala 2.8 Collections API Martin Odersky, Lex Spoon August 23, 2010 In the eyes of many, the new collections framework is the most significant change in Scala 2.8. Scala had collections before (and in fact the new framework is largely compatible with them). But it's only 2.8 that provides a common, uniform, and all-encompassing framework for collection types. Even though the additions to colle

    mnru
    mnru 2010/09/06
  • 正規表現に見切りをつけるとき

    Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

    mnru
    mnru 2010/09/06
  • Strutsは古代、JSFは近代、現代はRails - ひがやすを技術ブログ

    最近流行の古代、近代、現代パターンで、Webアプリケーションのアーキテクチャを振り返ってみたいと思います。 古代に生まれたStrutsですが、実は結構完成度が高く、WebにおけるMVCパターンは、Strutsでほぼ完成しています。ViewはJSP(Velocityもあり)とタグライブラリで決まり、ControllerもActionで決まり(StrutsそのものもControllerに分類する場合もあり)でしたが、モデルの実装方法は、決定的なものがありませんでした。 実は、モデルには、アプリケーションモデルとドメインモデルがありますが、この辺の考えも明確なものがありません。アプリケーションモデルという言葉は、あまり聞いたことがない方もいるかもしれませんが、SmalltalkのMVCは、既にそうなっているようです。 モデルをデータのみから成るドメインモデルと,アプリケーション固有の情報から成る

    Strutsは古代、JSFは近代、現代はRails - ひがやすを技術ブログ
    mnru
    mnru 2010/09/06
  • 大量のRSSフィードをチェックする時間を短縮するGTDスタイルのハック | ライフハッカー・ジャパン

    毎日、GoogleリーダーやRSSリーダーで、大量のRSSフィードをチェックしていると、情報を収集しているというより、情報の波に飲まれているような気分になります。そこで、あるブロガーさんが紹介していた、RSSフィードをストレスなく読むための、賢くて便利な方法を、ご紹介しましょう。 その方法というのは、Googleリーダーに登録しているフィードを、番号と名前をつけたフォルダ別に分類し、いわゆるGTDスタイルで月毎に管理していく、というものです。 毎日読みたい重要なフィードは「01 every day」、それ以外に週1回のチェックでいいものは、ランダムに曜日毎に分けるといった感じです。また、月1回程度チェックしておけば十分というものに関しては、「毎月1日」と「毎月15日」フォルダを用意し、そのどちらかに入れます。 「01 every day」など、フォルダ名の最初に番号をふっているのは、スクロ

    大量のRSSフィードをチェックする時間を短縮するGTDスタイルのハック | ライフハッカー・ジャパン
    mnru
    mnru 2010/09/06
  • “マイナス×マイナス=プラス”の理由は? 数学が面白くなるエントリー集 - はてなニュース

    「一体こんなものが何の役に立つのか」――そんな疑問で学生時代に「数学」で悩まされた経験のある人は少なくないようです。とはいえ、現在の私たちの生活は、数学なしには成立しません。そもそもいまこれを読む皆さんが目にしているPCやウェブサービス自体が、数学の成果を活かして作られたものです。今回は、友達に“リア充”が多く見える理由から、マイナスとマイナスのかけ算がプラスになる理由まで、そんな数学を楽しむためのエントリーをまとめました。 ■ なぜあなたの周囲は「リア充」だらけなのか? 日常にひそむ数学の数々 とはいえ、やはり数学はとっつきにくいという人も多いのではないかと思います。そこで、まずはちょっと数学が身近に感じられそうな、日常にひそむ数学について書いた記事から。 ▽ http://mainichi.jp/life/edu/sugaku/archive/news/2009/20091029ddl

    “マイナス×マイナス=プラス”の理由は? 数学が面白くなるエントリー集 - はてなニュース
    mnru
    mnru 2010/09/06
  • Vimで開発するならこれだけはやっとけ - 何気に大変

    開発効率を上げるためのプラグインや機能のご紹介。 ■neocomplcache http://github.com/Shougo/neocomplcache 自動で補完候補をポップアップしてくれるプラグインで、Vimで効率的な開発をしようと思うのであれば必須のプラグインです。vimrcに以下の1行を加えればプラグインが有効になります。 let g:neocomplcache_enable_at_startup = 1有効にした上で適当にファイルを編集すれば自動で補完候補が出てきます。候補を選ぶ時はCtrl+Nで次の候補、Ctrl+Pで前の候補が選択できます。 設定項目もたくさんあります。:help neocomplcache@ja とすれば日語ヘルプが見れるので、参照しながら設定してください。 もしこのプラグインを使ったことがないのであれば、人生の半分は損をしています。 ■テキストオブジ

    Vimで開発するならこれだけはやっとけ - 何気に大変
    mnru
    mnru 2010/09/06