タグ

ハッシュに関するtaka222のブックマーク (6)

  • ConsistentHashing - コンシステント・ハッシュ法

    ConsistentHashing - コンシステント・ハッシュ法 目次 この文書について コンシステント・ハッシュ法 実例 実装 用途 コンシステント・ハッシュ法 この文書について "Tom White's Blog: Consistent Hashing" の日語訳です. http://weblogs.java.net/blog/tomwhite/archive/2007/11/consistent_hash.html 推敲歓迎: 誤訳, タイポ, 訳語の不統一, そのほか... 原文のライセンス: http://creativecommons.org/licenses/by-nc-sa/2.0/ 私は今までに何度かコンシステント・ハッシュ法にとりくんだことがある。 このアイデアをあらわした論文 ( David Karger らによる Consistent Hashing and R

  • にひりずむ::しんぷる - 勝手に添削 - ハッシュを使おう

    この実装だとものすごくの遅いです。 要素数が、少ない場合はまぁそんなに時間がかからないかなーという感じでしょうが、1000行ぐらいのCSSファイルを処理したらいつまでも終わらないでしょう。 問題の個所は以下の場所。 sub check_order { my $line = shift; my $order = 0; for (my $i = 0; $i <= $#property_order; $i++) { if ($line =~ /^\s*$property_order[$i]:/) { $order = $i; last; } } return $order; } 1つの要素番号を得るために、毎回、最大数百回のfor文(このプログラムだと454回)が実行されます。 しかもこれがsortのたびに発生するので、とんでもない回数の処理(最悪でO(n2)*O(n)?よくわからんけど)が発生

  • 階層の深いHashを作成するときに知っておいたら便利なこと - (゚∀゚)o彡 sasata299's blog

    2009年11月10日23:49 Ruby 階層の深いHashを作成するときに知っておいたら便利なこと Ruby で階層の深いハッシュ(ハッシュの値がさらにハッシュとか)を作成するのって面倒です。何が面倒って毎回宣言しないといけないんですよー。まぁ他の言語やってた人なら当たり前なのかもしれませんが、Perl 出身の僕としては大変メンドクサイわけです。 例えばこのようなデータ構造を考えてみます。 #!/usr/bin/ruby hash = {} hash["hoge"] = 1 p hash # {"hoge"=>1} hash["foo"]["bar"] = 1 p hash # undefined method `[]=' for nil:NilClass (NoMethodError) 最初に hash = {} と宣言しているので hash["hoge"] = 1 の部分は問題なく

  • [ruby] Contents of /branches/ruby_1_8_7/st.c

  • Rubyのハッシュテーブルの仕組みを徹底的に理解する - ザリガニが見ていた...。

    ハッシュとは 一般的に理解すると抽象的で分かり難くなってしまうが、ハッシュとは、あるデータから、一定の計算をして求めた、目的に沿った数値、と思っている。それでは、どのような目的に利用されるのか?自分の知識で考えてみた。 暗号化 webアプリケーション等で、パスワードをDBに保存する時、生のパスワードをハッシュに変換して保存する。 Digest::SHA1.hexdigest等で求めたハッシュから、元のデータを復元するのが非常に困難という特性を利用する。 保存しているパスワードハッシュが、たとえ漏洩したとしても、不正利用を防止できる。 パスワードを照合するときも、ハッシュに変換して、保存しているパスワードハッシュと一致するかどうかで判断する。 同等の確認 長い文字列データを比較する時、全ての文字が等しいかチェックするのは非常に時間がかかる。 しかし、長い文字列データをハッシュに変換しておき、

    Rubyのハッシュテーブルの仕組みを徹底的に理解する - ザリガニが見ていた...。
  • Tips21 ファイル同一性の確認(ハッシュ比較)

    Windowsでプログラミングをするときに,これだけは知っておきたいTipsや設定を集めました。これらの知識は,プログラムを作るとき,実行するとき,トラブルを解決するときにどうしても必要になります。きっちり覚えておきましょう。なお,ここで紹介するWindowsは,基的に「Windows XP」を指します。「Windows 2000」「Windows Vista」など他のバージョンでは使えない場合があります。 ファイルの正当性確認(改ざんなどがなくオリジナルと同等かどうかを判断する)の方法として,ハッシュという方法が広く普及しています。ハッシュとは擬似乱数のことで,ファイルの中身から生成されます。ファイルの配布元はハッシュ値をサイトに掲載しておき,ユーザーはダウンロード後に手元で同じ方法で生成されたハッシュ値と比較してファイルの同一性を確認するわけです。 ハッシュの生成方法にはいくつかの種

    Tips21 ファイル同一性の確認(ハッシュ比較)
  • 1