タグ

algorithmに関するcvyanのブックマーク (32)

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro

    プログラムの高速化はプログラマにとって永遠の課題です。しかし,そこには知られざる暗黒面が隠れています。そもそも高速化に意味があるのかを調べなければなりません。次に,どの部分をどの程度高速化するのかが重要です。アルゴリズムの効率にも目配りが必要です。 コンピュータの処理速度は驚くべき勢いで向上しています。現在私たちが使っているパソコンは一昔前のスーパーコンピュータをしのぐ性能を備えていますし,半世紀前に登場したばかりの計算機と比較すると数十万倍の性能に相当します。 このように高速なコンピュータを持っているにもかかわらず,人間の欲望は限りがないものです。プログラムの実行速度はプログラマにとっての永遠の課題のようです。プログラムを高速化していると,「そんなに急いでどこに行く」という気になることもあります。 今回は,プログラムの高速化にまつわるさまざまな「秘密」と「限界」,そして「戦略」について解

    まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro
  • Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー

    Linux カーネルのプロセススケジューラの核である kernel/sched.c の schedule() を読み進めていくと、タスク切り替え(実行コンテキスト切り替え)はその名も context_switch() という関数に集約されていることが分かります。2.6.20 の kernel/sched.c だと以下のコードです。 1839 static inline struct task_struct * 1840 context_switch(struct rq *rq, struct task_struct *prev, 1841 struct task_struct *next) 1842 { 1843 struct mm_struct *mm = next->mm; 1844 struct mm_struct *oldmm = prev->active_mm; 1845 184

    Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー
  • 動的SQLによる数独の超高速解法:CodeZine

    Pinskiさんの記事は、「SQLで数独を解ける」ことを示したという点で評価できます。しかしながら、そのためのコードと実行時間が共に長大であるため、「SQLは面倒で遅い」という誤解を読者に与えかねません。稿で紹介する方法で、誤解が払拭されることを期待します。 第1、2部と第3部の手法を簡単にまとめておきましょう。 第1、2部では、手続き的な記述、つまり、どうすれば数独の解が得られるかの具体的な記述によって数独を解いています。手続き的とは言っても、せっかく宣言型言語であるSQLを使うので、手順の各ステップはなるべく宣言的に記述するように心がけています。 第3部(稿)の方法の質はたった1行のSELECT文です。このSELECT文には「数独の解とはどういうものか」だけが記述してあり、その解を得るための具体的な方法はコンピュータが考えます。ただし、このSELECT文は人間が手で簡単に書けるよ

  • プログラマーの“宿命”? ファイル操作に関する常識

    プログラマーの“宿命”? ファイル操作に関する常識:プログラマーの常識をJavaで身につける(7)(1/4 ページ) 連載は、Java言語やその文法は一通り理解しているが、「プログラマー」としては初心者、という方を対象とします。Javaコアパッケージを掘り下げることにより「プログラマーの常識」を身に付けられるように話を進めていきます。今回は「ファイル操作」について。OSやアプリケーションなどのさまざまなプログラムでよく行われ、とても身近な存在であるファイル操作の仕方を一から解説します

    プログラマーの“宿命”? ファイル操作に関する常識
  • 最速インターフェース研究会 :: Mozilla24でしゃべってきました

    9/15日にMozilla 24 出張Shibuya.js 24でしゃべってきました。 http://shibuyajs.org/articles/2007/08/24/Shibuya-js-24 資料はこちら。 http://ma.la/files/shibuya.js/mozilla24.html JavaScriptBloom filterのデモ。今のところ実用性が無い。仕組みを理解するのには良いかも。 http://la.ma.la/misc/js/bloomfilter/ Bloom Filterについてはここら辺が詳しい。 http://chasen.org/~taku/blog/archives/2006/01/bloom_filter_1.html http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AB%E3%83%BC%E3%83

  • SQLで木と階層構造のデータを扱う――入れ子集合モデル

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • JavaScript < jQuery < Lisp ? - IT戦記

    はじめに 僕は jQuery も Lisp も触ったことがないので、このエントリが言ってることは間違えてる可能性があります>< もし、「それ違うよ」ってのがあれば指摘してくれると嬉しいです>< そういえば 初めて dankogai さんと会ったときに「S 式とアセンブラは両極端にいながら データ==プログラム というところが同じだ」というようなことを言っていた(気がする)。 データ==プログラムというのは当にすごい データとしてプログラムを直接書き換えたりいろいろなことができる。当にすごい。 もちろん、他の言語でも、リフレクションすることや、変数やプロパティに関数を格納することでそれと似たようなことは可能だ。でもそれは、データ=プログラムとは全然違う。 バイトコード書き換えは似ているが、バイトコードの世界がデータ==プログラムなのであってその言語自体はそうじゃない。でも、バイトコードを

    JavaScript < jQuery < Lisp ? - IT戦記
  • 生年月日から年齢を計算する簡単な計算式:ITpro

    私の個人ブログに掲載したら好評でしたので、こちらでもご紹介してみます。 最近知ったんですが、生年月日から年齢を計算する簡単な計算式というのがあるそうです。 (今日の日付-誕生日)/10000の小数点以下切捨て。 PHPで書くと echo (int)((20070823 - 19850101)/10000); Perlで書くと print int ((20070823 - 19850101)/10000); JAVAで書くと System.out.println( (int)((20070823 - 19850101)/10000) ); という感じになります。 日の法律を確認してみました。誕生日の前日が終了する瞬間(すなわち誕生日をむかえる午前0時00分の直前)に1歳を加えることになる。ただしうるう年など、年によって期間を定めた場合において最後の月に応当する日がないときは、その月の末日を

    生年月日から年齢を計算する簡単な計算式:ITpro
  • はてなブログ | 無料ブログを作成しよう

    立山黒部アルペンルート横断&富山旅行記 なぜ富山? 事前準備 ざっくりと予定を立てて、宿の予約をする 立山黒部アルペンルートの切符を買う JRの新幹線の事前受付の罠 はじめての新幹線eチケットサービス 「特定都区市内制度」が適用対象外であることを知る 新幹線eチケットがモバイルSuicaに紐づけられてい…

    はてなブログ | 無料ブログを作成しよう
  • 辞書不要の形態素解析エンジン「マリモ」とは − @IT

    2007/08/15 検索サービスを提供するベンチャー企業のムーターは8月1日、辞書を必要としない形態素解析エンジン「マリモ」の提供を開始した。従来、形態素解析では品詞情報を含む日語辞書を用意するのが常識だったが、マリモでは、そうした辞書を不要とした。新技術のアプローチと特性について、開発元のムーターに話を聞いた。 統計処理で単語部分を推定 形態素解析とは、与えられた文を、文法上意味のある最小の単位(形態素)に区切る処理。「今日は晴れています」なら、「今日(名詞)/は(助詞)/晴れ(動詞)/て(助詞)/い(助詞)/ます(助動詞)」と分ける。検索エンジンをはじめ、さまざまな自然言語処理の場面で必要となる基礎技術だ。 形態素解析を行うには、あらかじめ品詞情報が付加された数十万語からなる辞書を用意する必要がある。また、新語や造語、専門用語に対応するには、個別に人力で単語を登録する必要がある。

  • 39. IPアドレスの保存方法

    IPアドレスをデータベースに保存する場合に、文字列で保存してないでしょうか。IPアドレスは32bitの数値なので、そのまま数値として保存することができます。 一般的にIPアドレスはxxx.xxx.xxx.xxxというような4つの数値をドットで区 切った文字列で表されることが多いと思います。この文字列は32bitの整数を 8bitずつに区切った数値を並べたもので、この数値から32bitの整数を取得する ことができます。 PHPでは、ip2long と long2ip という2つの関数を使って、文字列形式から数値 に、数値から文字列形式に変換することができます。例えば、Webページにアク セスしてきた端末のIPアドレスを数値形式で取得する場合、以下のようにします。 $ip_address = $_SERVER["REMOTE_ADDR"]; $ip_long = ip2long($ip_add

    39. IPアドレスの保存方法