VNR ContentSize计算方式
2020-12-26 本文已影响0人
魔人健太郎
// 1 先看当前句子,比14长就一句够了
// 2 比14短,且前一句比14长(大概率)小于300。这俩句就放一起。前一句离谱的话当前还是一个人带着
// 3 已经比14 短了,前一句还是比14 短,只要前前一句不离谱的长,就把3句话放在一起。前前一句离谱的话,就保存当前和上一句两个
// 相当于 hash[0] [1] [2] [3]
// [0] [1] [2]
Array.Copy(hashes, 0, hashes, 1, CONTEXT_CAPACITY);
// 相当于接下来的循环可以先把0 看做空的不要管他
// [1] [2] [3]
// 1号位就是上一次,2号位就是上上一次
// 把 1 2 3 全丢进去,把自身hash 作为新的hash值再做hash运算
for (int i = 1; i < HASH_CAPACITY; i++)
{
hashes[i] = (hashes[i] != 0) ? Djb2_hash(bytes, hashes[i]) : 0;
}