生成 k 个成对独立的哈希函数

2024-06-23

我正在尝试实施一个计数最小草图 http://en.wikipedia.org/wiki/Count-Min_sketchScala中的算法,所以我需要生成k个成对独立的哈希函数。

这是一个比我以前编写过的任何东西都低的级别,除了算法类之外,我对哈希函数了解不多,所以我的问题是:如何生成这 k 个成对独立的哈希函数?

我应该使用 MD5 或 MurmurHash 等哈希函数吗?我是否只生成以下形式的 k 个哈希函数f(x) = ax + b (mod p),其中 p 是素数,a 和 b 是随机整数? (即通用哈希家族 http://en.wikipedia.org/wiki/Universal_hashing每个人都在算法中学习 101)

我更注重简单性而不是原始速度(例如,如果实现起来更简单,我会以慢 5 倍的速度运行)。


Scala已经有MurmurHash已实施(这是scala.util.MurmurHash)。它非常快并且非常擅长分配值。加密哈希是多余的——你只会花费比你需要的时间长几十或几百倍的时间。就选k从不同的种子开始,因为它的质量几乎是加密的,所以你会得到k很大程度上独立的哈希码。 (在 2.10 中,您可能应该改用scala.util.hashing.MurmurHash3;用法相当不同,但你仍然可以通过混合来做同样的事情。)

如果您只需要将近值映射到随机的远值,这将起作用;如果你想避免冲突(即,如果 A 和 B 使用哈希 1 发生冲突,那么它们可能不会使用哈希 2 发生冲突),那么你至少需要再执行一步,而不是对整个对象进行哈希处理,而是对它的子组件进行哈希处理,这样哈希值有可能以不同的方式开始。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生成 k 个成对独立的哈希函数 的相关文章

随机推荐

  • NHibernate:多对一和惰性

    关于 NHibernate 1 2 webapp C aspnet 3 5 和延迟加载 我不明白 也找不到一些明确的答案 多对一是否支持延迟加载 假设我们有一些Person对象和一个Squeletton目的 这两个对象都很大 具有很多属性
  • ASP.NET MVC FileResult 正在损坏文件

    我一直在尝试让我的 ASP NET MVC 网站将一些数据导出为 Excel 文件 几个小时以来 我一直以为 NPOI 只是在生产垃圾 所以我转向了 EPPlus 我在 LINQPad 中对其进行了测试 它创建了一个正常工作的 XLSX 文
  • 从 Python 脚本使用 POST 发送文件

    有没有办法从 Python 脚本使用 POST 发送文件 From https requests readthedocs io en latest user quickstart post a multipart encoded file
  • React Native NetInfo 总是返回离线状态

    我目前正在尝试在我的 React Native 应用程序中实现一些功能 如果设备离线 我将使用本地存储的信息 如果设备在线 则执行提取 读完这篇文章后我使用了 NetInfo当网络关闭时 如何处理 React Native 中的网络故障 h
  • 我想制作具有3D效果的幻灯片菜单,如下图所示

    我可以使用此代码制作滑块 但我不知道如何制作3D import android os Bundle import android support v4 app Fragment import android support v7 app A
  • 评论投票数据库结构的最佳实践

    我正在开发一个 PHP 应用程序 它有几个可以评论的对象 每个评论都可以进行投票 用户可以给它 1 或 1 如 Digg 或 Reddit 现在我计划建立一个 投票 表 其中包含 user id 及其投票信息 这似乎工作正常 问题是 每个对
  • jQuery 克隆() 问题

    这是我完整的 html 日期和时间表 div class addmore box date div class row div class col xs 6 col sm 4 col md 4 div div div
  • AudioSet 和 Tensorflow 理解

    With AudioSet https research google com audioset index html发布并为那些进行合理研究分析的人提供了一个全新的研究领域 最近几天我一直在努力深入研究如何分析和解码这些数据 数据在 tf
  • Rails 3.2.3 - Bundler 找不到 gem“railties”的兼容版本

    我一直在关注 Michael Hartl 的更新版本 Ruby on Rails 教程 http ruby railstutorial org ruby on rails tutorial book fig 3aheroku app 31我
  • 重置 JDBC Kafka 连接器以从头开始提取行?

    Kafka 连接器可以利用主键和时间戳来确定需要处理哪些行 我正在寻找一种重置连接器的方法 以便它从一开始就进行处理 因为要求是在分布式模式下运行 所以最简单的做法是将连接器名称更新为新值 这将提示在 connect offsets 主题中
  • 如何克隆 Angular UI 树中的节点?

    如何克隆 Angular UI 树中所有子节点的节点 现在我使用事件点击 ng click newSubItem this where newSubItem是函数 scope newSubItem function scope var no
  • Xcode 9:如何安装 ios 10 sdk

    鉴于目前 Xcode 9 是测试版 而今天的主要兴趣是了解 iOS 11 这个问题无疑很奇怪 在 Xcode 9 beta 中工作时 有没有办法将 iOS 10 作为基础 sdk Apple 是否需要像在 Xc8 中为以前的操作系统打包 X
  • 如何同时执行 typescript watch 和运行服务器?

    我正在用nodejs开发我的项目 我发现如果我需要编码和测试api 我会运行两个控制台 一个是执行typescript watch 另一个是执行server 我觉得这样太麻烦了我发现 github 上的其他开发人员已经编写了脚本packag
  • 使用神经网络包保存神经网络图时遇到问题 - R

    我正在使用neuralnetR 中的包 但是将绘图保存到磁盘时遇到问题 data iris attach iris library neuralnet nn lt neuralnet as numeric Species Sepal Len
  • flex:1 和 flex-grow:1 的区别

    In mdn https developer mozilla org en US docs Web CSS flex flex 1 意思是一样的 flex grow 1 但实际上它在浏览器中的显示有所不同 你可以在这个尝试一下jsFiddl
  • MVC 2 中不明确的操作方法

    我在 MVC 2 中遇到一些不明确的操作方法问题 我尝试实现此处找到的解决方案 ASP NET MVC 不明确的操作方法 https stackoverflow com questions 1045316 asp net mvc ambig
  • 如何使用 jQuery 获取文本框中输入的文本长度?

    如何使用 jQuery 获取文本框中输入的文本长度 var myLength myTextbox val length
  • 将 __m256 值设置为所有 1 位的最快方法

    如何将值中的所有位设置为 1 m256价值 使用 AVX 或 AVX2 内在函数 要获得全零 您可以使用 mm256 setzero si256 为了获得所有这些 我目前正在使用 mm256 set1 epi64x 1 但我怀疑这比全零情况
  • JSR-310 - 解析可变长度的秒分数

    有没有办法创建 JSR 310 格式化程序 能够解析以下具有可变长度秒分数的日期 时间 2015 05 07 13 20 22 276052 or 2015 05 07 13 20 22 276 示例代码 DateTimeFormatter
  • 生成 k 个成对独立的哈希函数

    我正在尝试实施一个计数最小草图 http en wikipedia org wiki Count Min sketchScala中的算法 所以我需要生成k个成对独立的哈希函数 这是一个比我以前编写过的任何东西都低的级别 除了算法类之外 我对