统一哈希函数

2024-03-17

哈希表基础知识: - 主要测试即将进行。我们将不胜感激所有帮助。

我基本上对密钥的统一散列有点困惑。

----------------------
| X X X                    <=== Chains; X represents an item in there
----------------------
| X X X                    <=== Multiple X represents collisions
---------------------- 
| 
----------------------
| X X X
----------------------
| X
----------------------
  1. 考虑上述哈希表的情况,其中 M = 5(行数)且总长度为 10。我如何知道这个哈希表是否是统一哈希的?

  2. 如果对一组键进行统一散列,这是否意味着散列表中的链内的列表(也称为由于冲突而产生的链表)具有相同的长度?或者说是平均数的意思?

  3. 如果对键进行统一哈希,这是否意味着该哈希表的查找和删除函数为 O(1)(摊销),纯复杂度为 O(n/M),其中 M 是链的总数?

  4. 负载因子或 (N/#ofChains) 是否确定哈希的均匀性?

我希望你能帮我解答这些问题。我的教授在课堂上提出了很多概念,我基本上只是在这里将它们组合在一起,当我将这些概念放在一起时,我感到很困惑。

我在网上搜索更多信息来研究这个概念,我看到了一组幻灯片,如下所示。如果你的话我将不胜感激可以向我解释第二张幻灯片中的方程式相对于密钥的统一散列意味着什么.

另外,当他们说“映射到每个插槽的键数量相等”时,这是什么意思?是否可以说上面显示的我的哈希表没有统一哈希?

谢谢


幻灯片讨论了键的所有可能值。重要的是要认识到,在哈希图中,在任何给定时间都只有键的子集。无论您的哈希函数有多好,您可能会因为这些键映射到存储桶而感到幸运,也可能不会。

1)考虑上述哈希表的情况,其中M = 5(行数)且总长度为10。我如何知道这个哈希表是否是统一哈希的?

统一哈希是哈希函数的属性,而不是哈希表的属性。因此,仅仅通过查看哈希表的内容,是不行的。您必须查看哈希函数本身才能确定它是否统一。

2)如果对一组键进行统一散列,这是否意味着散列表中链内的列表(也称为由于冲突而产生的链表)具有相同的长度?或者说是平均数的意思。

就是平均的意思。

3) 如果对键进行统一哈希,这是否意味着该哈希表的查找和删除函数为 O(1)(摊销),纯复杂度为 O(n/M),其中 M 是链的总数。

除了哈希函数的属性之外,复杂性还取决于负载因子。如果桶的数量随着元素的数量线性增长,你会得到O(1)平均查找和删除(只要您适当地摊销重新分桶)。

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

统一哈希函数 的相关文章

  • 使用 ## 和 __LINE__ 创建 C 宏(与定位宏的标记串联)

    我想创建一个 C 宏来创建一个基于名称的函数 在行号上 我想我可以做类似的事情 真正的函数在大括号内有语句 define UNIQUE static void Unique LINE void 我希望能扩展到类似的内容 static voi
  • 如何在 Asp.Net Core 6 中向类型化 HttpClient 添加承载令牌身份验证

    我正在尝试使用 ASP Net Core 6 设置一个 Web api 以便用户可以到达我的端点 然后我使用特权帐户在幕后的 D365 中执行一些工作 我正在使用类型化的 HTTP 客户端 但我不确定如何插入承载身份验证 以便来自该客户端的
  • 如何将 mat 转换为 array2d

    我为dlib http dlib net face landmark detection ex cpp html那里的面部地标代码使用 array2d 来获取图像 但我喜欢使用 Mat 读取图像并转换为 array2d 因为 dlib 仅支
  • 为什么下面的重叠比较总是评估为 true

    我不明白为什么以下代码有警告 指出重叠比较始终评估为真 接下来的语句永远不会被执行 QVariant MainModel data const QModelIndex index int role const if index isVali
  • 在 T4 代码生成中,如何从引用的程序集中获取类型?

    由于 T4 在项目上下文之外运行 因此我无权访问当前程序集或其他程序集 如何注册对引用程序集的访问 然后从中获取类型 我猜您想访问项目中建筑物的程序集 我在下面的示例代码中所做的是将一个名为 TestLib 的项目添加到我的解决方案中 我将
  • 如何修复此 YCrCb -> RBG 转换公式?

    我使用的公式来自这个问题 https stackoverflow com questions 8838481 kcvpixelformattype 420ypcbcr8biplanarfullrange frame to uiimage c
  • 我们什么时候应该在.NET中使用NativeMemory.Alloc()? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 NET6 C 引入NativeMemory类 但我不知道什么时候应该使用NativeMemory Alloc 而不是普通的数组实例化
  • 如何从命名空间内重载运算符<<

    这是我能想到的最小的包含示例 首先是类的标题 每当使用 pragma once ifndef EURO H define EURO H include
  • 无法在 Visual Studio 和 vcpkg 中构建 cmake 项目(致命错误 C1083)

    我今天安装了vcpkg 启用了与Visual Studio的集成 即 vcpkg集成安装 并开始安装库 我基本上安装了 cpprestsdk 并触发了 boost 库的安装 然后我在 Visual Studio CMake 中打开该项目 当
  • 如何检查给定调用站点的重载决策集

    如何检查重载解析集 我在多个调用站点中使用了 4 个相互竞争的函数 在一个调用站点中 我期望调用一个函数 但编译器会选择另一个函数 我不知道为什么 这不是微不足道的 为了了解发生了什么 我正在使用enable if disable if打开
  • C# 中不区分大小写的替换不使用正则表达式?

    有没有一种方法可以在不使用 C 中的正则表达式的情况下对字符串进行不区分大小写的替换 像这样的东西 string x Hello x x Replace hello hello world 你可以尝试类似的东西 string str Hel
  • Bazel:将编译标志添加到默认 C++ 工具链

    我想向默认的 C 工具链添加一些编译器和链接器标志 以便我构建的所有目标 本地或导入 共享它们 我知道可以定义我自己的工具链 但我不想这样做 因为它非常复杂且容易出错 理想情况下我想要这样的东西 cc toolchain cc defaul
  • 这个元组创建习惯有名字吗?

    On the 增加邮件列表 http lists boost org Archives boost 2014 06 214213 php LouisDionne 最近发布了以下创建类似元组的实体的巧妙技巧 include
  • PowerShell 与 MongoDB C# 驱动程序方法不兼容?

    由 C 泛型引起的最新 MongoDB 驱动程序的问题 Cannot find an overload for GetCollection and the argument count 1 我可能可以使用其他没有泛型的 GetCollect
  • C# 从今天起 30 天

    我需要我的应用程序从今天起 30 天后过期 我会将当前日期存储在应用程序配置中 如何检查应用程序是否已过期 我不介意用户是否将时钟调回来并且应用程序可以正常工作 用户太愚蠢而不会这样做 if appmode Trial string dat
  • OpenSSL:无需 SSL_read() / SSL_write() 即可执行加密/解密

    我已经用 C 语言编写了一个基于事件的网络库 现在我想通过 OpenSSL 添加 SSL TLS 支持 而不是使用SSL read and SSL write 我宁愿让 OpenSSL 只执行传出 传入数据的加密 解密 让我自己传输 接收数
  • 为什么在 C++ 类中的数据成员上使用像 m_ 这样的前缀?

    许多 C 代码使用语法约定来标记数据成员 常见的例子包括 m memberName对于公共成员 在所有使用公共成员的情况下 memberName对于私人会员或所有会员 其他人尝试强制使用this gt member每当使用数据成员时 根据我
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • 在地图上使用 find

    如何使用 find 和 aconst iterator如果你有一个地图定义为 typedef std pair
  • 从最大到最小的3个整数

    我是 C 初学者 我使用 编程 使用 C 的原理与实践 第二版 问题如下 编写一个程序 提示用户输入三个整数值 然后以逗号分隔的数字顺序输出这些值 如果两个值相同 则应将它们排列在一起 include

随机推荐

  • VennDiagram 创建 vennCounts 列表

    我有一个这样的表 gt updownregtable PIM WDR MYC OBX ILMN 1651282 0 0 0 0 ILMN 1651354 0 0 0 0 ILMN 1651358 0 0 0 0
  • GData Youtube:获取缩略图

    我有一堆 youtube VideoID youtube com 网址的参数 watch v 中的字母数字字符串 我必须获取每个视频的缩略图 现在 我为每个 videoid 创建一个 HTTP GET 请求 如下所示 s VIDEOID 实
  • 我们如何在 MVC5 中启用 Bundles 缓存

    我在我的 mvc 项目中创建了 2 个包 如下所示 public static void RegisterBundles BundleCollection bundles bundles Add new ScriptBundle Scrip
  • 如何优雅地将所有枚举放入 std::set 中

    我有一个枚举 我想将它们全部放入集合中 然后使用 set intersection 算法删除一些 但这是题外话 除了我卡在第 1 步之外 一切都很好 如果我有 真实类具有基数更高的枚举 class MyClass enum Color re
  • 将 span 标签包裹在 div 内

    我有几个相互嵌套的 div 标签和一些嵌套的 span 标签 如下所示 div div span class mytags a href tag1 a span span class mytags a href tag2 a span di
  • 将 Matplotlib 中的多个 .png 图形输出到 Python 3.4 中的一个 zip 文件

    我编写了一个程序 使用 Python 中的 MatPlotLib 从 CSV 文件输出多个不同的饼图 超过 60 个 我认为我不需要共享所有代码 但我有一个draw 创建图形的函数 其结尾如下 def draw data make the
  • 在旋转界面方向时将 contentOffset 保留在 UICollectionView 中

    我正在尝试处理 UICollectionViewController 中的界面方向更改 我想要实现的是 我想要拥有same界面旋转后的 contentOffset 意思是 它应该根据边界变化的比率进行更改 从纵向开始 内容偏移量为 边界 尺
  • IEEE 754 实数能否“覆盖”其范围内的所有整数?

    原始问题经过编辑 缩短 以关注精度问题 而不是范围问题 单精度或双精度 实数的每种表示形式都限制为 range range 在此范围内有一些整数 1 2 3 4 等 负数也是如此 是否保证 IEEE 754 实数 浮点数 双精度数等 可以
  • MVC3 Values Ajax 文件上传

    我正在尝试使用 value ajax 上传器 http valums com ajax upload http valums com ajax upload 我的页面上有以下内容 var button fileUpload 0 var up
  • 监视目录的更改 - 潜在的高内存

    我目前正在使用nodeJS 中的脚本来监视目录 及其子目录 并在将文件放置在那里后执行一些功能 实际上 这将是一个 FTP 用户上传文件 对其进行处理 然后删除 显然 我已经看到脚本的 CPU 使用量很高 因为它遍历目录 等待文件可见 但令
  • 表视图的索引列表显示点 iOS 5+

    在我的应用程序中 我在带有索引列表的表视图中显示联系人 我显示索引列表如下 static NSString letters abcdefghijklmnopqrstuvwxyz void getAllUserInfoUsingBlock l
  • 在 Windows 上使用 Java 处理 MailDir 格式时出现问题

    这确实是两个问题 但它们密切相关 我正在开发一个 Java 应用程序 它将处理以 UNIX 风格 MailDir 格式存储的电子邮件 我正在使用 JavaMail API 发现Java邮件目录 http javamaildir source
  • 通过 refs 从父级中的无状态子组件访问输入值

    我正在创建一个程序来跟踪商店库存 我有一个项目名称 字符串 数组 通过它们映射来生成一个组件 该组件呈现每个项目的标题以及相应的输入字段 function Inventory props let items milk bread butte
  • 如何在 iPhone 上的锁定模式下播放声音

    每个人都知道在用户按下锁定按钮 无声 后保持应用程序运行的标准程序 如果我用 AVAudioPlayer 启动声音 在 iPhone 锁定之前 声音会一直播放到结束 锁定后 该应用程序仍在运行 如果我在 iPhone 锁定时尝试启动另一个声
  • 使用 pyFMI 进行模拟时出现 CVodeError

    我尝试在 Anaconda Python 3 6 8 上设置 pyFMI 安装 pyFMI 站点上列出的所有必需软件包 fmu 加载没有问题 但当我尝试模拟 fmu 时 出现错误 Could not find cannot import n
  • Gmail 电子邮件中的 Flex/Grid 属性被删除

    我有一个 PHP 脚本 可以通过邮件发送以下 HTML div style width 70 background color 060b2b margin auto display flex h1 style margin top 50px
  • Firebase 函数错误:.once 不是函数

    我正在尝试将一个简单的功能部署到 Firebase 但遇到了一些困难 每次我尝试在引用上使用 once 时 Firebase 都会告诉我它不是一个函数 这是我的代码 exports testFunction functions databa
  • 初始化 TypedDict 并稍后填充键和值

    我有一个字典 其中键和值的类型是固定的 我想定义 a 中的类型TypedDict如下 class MyTable TypedDict caption List str header List str table pd DataFrame e
  • 如果从 Jenkins 调用而不是从 CMD 调用,MSBuild 会在项目中抛出“名称太长”

    如果我手动运行以下命令 一切都会编译正常 cd D Jenkins redacted Api gt C WINDOWS Microsoft NET Framework v4 0 30319 MSBuild exe property Conf
  • 统一哈希函数

    哈希表基础知识 主要测试即将进行 我们将不胜感激所有帮助 我基本上对密钥的统一散列有点困惑 X X X lt Chains X represents an item in there X X X lt Multiple X represen