このコード (出所不明の LZW 圧縮プログラムから抜粋) は、0 から 5020 までのインデックスが付けられたサイズ 5021 のハッシュ テーブルで空のスロットを見つけます。
probe := <random 12-bit hash key>
// probe is initially 0 to 4095
repeat
{
if table[probe] is empty then return(probe);
if probe == 0 then probe := -1 else dec(probe, 5021-probe);
if probe < 0 then inc(probe, 5021);
}
これは、典型的な線形または二次プロービングではありません。なぜそのように調査するのですか?これは既知のプロービング アルゴリズムですか? 詳細はどこで確認できますか?