Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

バケットの数≠キーの数

ネタ不足なんで、わざわざTBして便乗します(笑)。


ハッシュをスカラーコンテキストで評価したものの正体。

としてみて「あぁ要はkeyの数なのね。」とか浅はかな考えを持ったらば、

9以降様子が変わりました。

がーん。あの文字列って、"エントリ(キー)領域の利用数/確保数"だと思ってた。危なく、この文字列を数値コンテキストで評価した物をキー数として使っちゃうとこでした*1。"利用しているバケットの数/確保済みのバケットの数"が正解でしたか。


さて、9以降増えなかった謎ですが、バケットって言葉の意味さえ調べればそんなに難しくありません。ラクダ本(第3版)のP91とP1219の"バケット"を読めばわかります。ハッシュ*2によるデータ構造の場合、ハッシュ関数の結果は一意じゃないので、同じハッシュ値に対して複数値を持てるようにリストを用意しますが、このリストをバケットと読んでいるのですね。Programing Pearlsの中ではビンと呼んでました。

*1:ラクダ本によると、scalar(keys %hash)が正解

*2:Perl連想配列ではなく、データ構造のハッシュテーブルの意