问题标签 [quadratic-probing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5478 浏览

python - 在 Python 中使用二次探测的字符串散列

我正在尝试用 Python 编写一个函数,它将字符串添加到哈希表中,并通过二次探测解决任何冲突,而无需导入数学。

我的问题是我不断收到 IndexError: list index out of range 并且我确定问题出在 else 块中,但是我似乎无法找到解决方案。任何帮助表示赞赏,谢谢。

0 投票
1 回答
1585 浏览

algorithm - 证明二次探测函数

如果有人可以帮助解决这个问题,我将不胜感激。问题是:考虑以下哈希函数:h(k, i) = (h'(k) + (1/2) (i + i^2 )) mod m,其中 m = 2^p 表示某个正整数页。证明或反驳对于任何 k,探针序列是 <0, 1, 2, ...,m – 1> 的排列

0 投票
0 回答
235 浏览

machine-learning - 带有 --lrq 选项的 vowpal wabbit 中的一次与迭代模型

我正在使用带有低秩二次选项 (--lrq ) 的 vowpal wabbit 逻辑回归进行 CTR 预测。我已经用两种情况训练了模型

  1. 使用命令一次建模

vw -d traning_data_all.vw --lrq ic2 --link logistic --loss_function logistic --l2 0.0000000360911 --l1 0.00000000103629 --learning_rate 0.3 --holdout_off -b 28 --noconstant -f final_model

  1. 我已经将训练数据分成 20 个块(按天计算)并以迭代方式构建模型(使用选项 -i 和 --save_resume)。

第一步:-

vw -d traning_data_day_1.vw --lrq ic2 --link logistic --loss_function logistic --l2 0.0000000360911 --l1 0.00000000103629 --learning_rate 0.3 --holdout_off -b 28 --noconstant -f model_1

接着

等等最多20次迭代

第一种情况运行良好,但在第二种情况下,预测在 7-8 次迭代后趋于 1 或 0(仅)。我需要第二个场景工作,因为我想经常更新模型。l1、l2 和 learning_rate 由 vw-hypersearch 脚本优化。

请帮助我如何解决这个问题。我错过了什么吗?我试过选项--lrqdropout.

0 投票
1 回答
1110 浏览

python - 如何将哈希表中的线性探针转换为二次探针?

嗨,我是 python 新手,我有一个使用线性探测来解决冲突的哈希表。我知道线性探针是当 N+1 ,N+2,N+3 时,但二次探针是当 n+1,n+4,n+9 ... 这是我对线性探针的设置项功能

要将其转换为二次探头,我尝试将位置更改为

但显然这是错误的,因为二次索引被添加到最后一个位置而不是原始位置?任何帮助将不胜感激!

0 投票
2 回答
372 浏览

java - 为什么在不覆盖碰撞值时,这种二次探测的实现会失败?

当发生碰撞时,我当前的二次探测实现会用新项目覆盖当前索引中存储的项目。我插入三个 Person 对象,这些对象是通过使用他们的姓氏作为键来存储的。为了测试实现的冲突解决方案,它们都具有相同的姓氏,即“Windmill”。

我需要实现来保留所有人员对象,但只需将它们移动到不同的索引而不是覆盖它们。

列表大小已设置为 7,存储在变量“M”中,用于插入函数中的模数。

插入功能

哈希函数

获取函数

当我删除覆盖先前值的代码时,索引 int 溢出并变成负数,导致程序崩溃。

0 投票
0 回答
178 浏览

data-structures - 二次探测、双散列和布谷鸟散列实际使用在哪里?

二次探测、双散列和布谷鸟散列实际使用在哪里?

据我所知,Java HashMap 使用分离链接,而 C++ unordered_map 底层的哈希表使用线性探测。是否有任何常用的语言/库/应用程序使用更高级的散列技术,如二次探测、双散列和布谷鸟散列(等等)?

0 投票
1 回答
166 浏览

c - 如何在不使用指针的情况下调试 C 中哈希表的二次探测实现?

我只是想对应该适用于任何表大小的哈希表实现二次探测。我在下面编写的代码仅在哈希表大小为 10 时才有效。

基本上,我必须对 while 循环进行限制,最多可以进行探测。我手动检查,发现对于 10 的表大小,每 6 个索引位置都在重复。所以我把 6 的限制放到了 while 循环中。

当涉及到任何其他表大小时,重复索引位置的数量会有所不同。所以,我无法决定何时停止迭代。我愿意接受任何其他方法来解决这个问题。

0 投票
1 回答
30 浏览

algorithm - 为什么该算法适用于二次探测?

为什么将偏移量增加 2 有意义?我知道这个算法有效,我已经绘制了导致 ax^2 类型图的结果,但我只是看不到它。有人可以简单地解释一下吗?谢谢!

0 投票
1 回答
140 浏览

algorithm - 线性探测中的聚类如何影响搜索时间

我理解线性探测中的问题,即由于后续索引将存在元素簇。但我不明白这句话The bigger the cluster gets, more it reduces the performance.如何降低散列的性能?

0 投票
1 回答
261 浏览

c++ - 调整大小的 C++ HashTable 二次探测插入方法不起作用?

一旦阈值超过预定量 0.65,此方法应该调整数组的大小。问题是在调整大小后,析构函数会删除包含所有新复制信息的数组。我不知道如何解决它。

关于那里的一些评论只是我集思广益可能是什么问题。