tw.log

https://twitter.com/kinaba のログ (twilog の方が便利です。)

<<newer (latest) older>>

20110411 09:03 @cocoatomo うーん、よくわかりません。たとえば http://ibm.co/gwHMdq で 31倍して足しているのはなぜそれで良いのか、とか、的なことを読んだことが無くて。奇数なのはその方が情報ロスがないから、というのは見るけれどじゃあこれを3に変えてもいいのか (続
20110411 09:07 @cocoatomo 続) それとも3ではマズいのか、の判断ができない…。Javaなら「commons先生がそう言っているので任せる」でいいんですけど、HashCodeBuilder相当のものを他言語で作ろう、という時に理由を理解せずデッドコピーではいかんなーと…
20110411 10:41 @cocoatomo お、これは面白そうなドキュメントですね。ありがとうございます自分も読んでみます。 @kumagi さんとの会話を見逃していました...不覚(^^;;
20110411 22:36 ハッシュ関数について教えておしえてもらったページ読んでる http://computinglife.wordpress.com/2008/11/20/why-do-hash-functions-use-prime-numbers/ と https://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/kernel/hash.hpp 。前者はなんかこれ書いた人わかってないんじゃないか感があるのでまあいいや…。後者(のtimes33hashのコメント)は面白そげ
20110411 22:43 掛け算式のハッシュ計算だと、実験してみたら奇数ならだいたいあんまり変わらなかった(たぶんハッシュ表のサイズが2のベキ乗として実験してるんだと推測)のでシフトで計算しやすい乗数を選びますよー的なことが書いてある。それでどっちにも適切に説明されたことはないと書いてあるがホンマかいな
20110411 23:08 自分の疑問点をもう一度ランダムにまとめよう。「ハッシュ表のキーとして使う用途において、複数のハッシュ値を合成して一つのハッシュ値にまとめる良い計算式は何か。複数というのは2個や3個の固定個数の場合も、可変個数の場合もどっちも知りたい」。
20110411 23:09 「hash=hash*31+new_data; という更新式で足し込む物を結構見かける。31は33だったりも。で、h=(h*A+d)%M形の式なら、AとMが互いに素な方が情報落ちなくて良いというのはまあわかる。Mが不明ならAが素数の方がその意味で良いという主張も良しとしよう。」
20110411 23:09 「で、じゃあ互いに素なら何でもいいのか。それとも違ったりするのか。31掛けを使っている文献は割と8bit文字列のハッシュ化に使っているものが多い気がするんだけど、32bitハッシュ値の配列の合成に同じ31を使うのってOKなんすか本当に」
20110411 23:09 「あとそもそも、掛けて足すという演算ってえらく単純だけど、乱数生成だとそれがマズいとよく言われていると思うけどハッシュ関数はそれでいいのはなんでみたいな疑問も」
20110411 23:09 「何がいい悪いというのは結局、「同時にハッシュ表に突っ込まれやすいデータが別のハッシュ値になりやすい」のが良い、ので同時にハッシュ表に突っ込まれやすいデータとは統計的にどんなであるかに依るわけだけど、そういうデータってないのかなとか」
20110411 23:10 http://burtleburtle.net/bob/hash/hashfaq.htmlhttp://burtleburtle.net/bob/hash/evahash.html の "permute and no funnel" という基準は非常に明確でいい感じだ
20110411 23:14 Hash functions: An empirical comparison http://www.strchr.com/hash_functions そういえば文字列のハッシュ化はドラゴンブックの旧版に色々書いてあった気がするな…売ってしまったよ…
20110411 23:18 @finalfusion 文字列のハッシュ化にはとりあえず全く興味が無いのですが、たぶん関係が無いことは無いだろうなーくらいの。
20110411 23:23 @xagawa そういうことになるんでしょうか。自分でもよくわかっていないです(^^;。「型Aの値の十分良いハッシュ関数faと型Bの十分良いfbが既に存在するときにpair<A,B>のハッシュ関数をfaとfbから作る時に気にした方がいいポイントが仮に何かあるとすればそれは何か」
20110411 23:29 @xagawa ふむ。そうなりますね。
20110411 23:34 ところでそろそろいい加減screenの使い方を覚えないと業務に差し支える気がしてきているので覚えるか
20110411 23:37 @karatsubaki おつかれさまです…
20110411 23:47 @filil 新しい方も実家に置いてきてしまったのですぐに確かめられないのですが、コードが全部Javaになってハッシュ表は標準ライブラリの使えば済むようになってしまったので、その辺全部簡略化されてたように記憶しています。もしかしたら僕が読み飛ばしただけかも…(自信ない
20110411 23:50 @sumita12 複数開きたいというよりは、デタッチして複数のマシンでセッションを持ち回りたい欲求が…

<<newer (latest) older>>

presented by k.inaba (kiki .a.t. kmonos.net) under CC0