对于范围从 0 到最大值的 uint64_t 键,最佳哈希函数是什么?

2024-05-02

假设我们有一组元素并希望将它们存储在哈希映射中(例如std::unordered_set),并且每个元素都有一个 type 的键uint64_t其值可以从 0 到最大可能值变化,使用简单哈希函数(其中键的哈希值就是键本身)是最佳选择吗?它是否取决于使用的容器(即 Google 的稀疏哈希与std::unordered_map来自STL)?键值出现的概率未知。


如果您需要散列的只是具有未知概率的任何可能值的 uint64_t,并且您的输出必须是 uint64_t,那么您不会通过更改该值获得任何优势。只需使用密钥本身即可。

如果您知道有关值的分布的信息,或者您的值被限制在较小的范围内(这实际上与了解分布相同),那么对键应用转换可能是有益的,但这取决于容器的实现。当表将哈希转换为存储桶索引时,您只会通过减少冲突而受益,但这取决于表的算法和表的当前/平均状态(每个存储桶的使用频率)。

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

对于范围从 0 到最大值的 uint64_t 键,最佳哈希函数是什么? 的相关文章

  • 在 O(n) 时间内排序?

    我被这个问题困扰了 2周 知道如何处理它吗 令 L 为 n 个不同整数的列表 假设 L 的 x 的元素在 1 750 范围内 设计线性排序算法对 L 的元素进行排序 我已经尝试过插入排序 但我不确定我的方法是否正确 Construct an
  • C++ 中的软(不是:弱)引用 - 这可能吗?有实施吗?

    在 C 中我正在使用boost shared ptr and boost weak ptr自动删除不再需要的对象 我知道这些与引用计数一起工作 在 Java 中 内存由垃圾收集器管理 它将内置对象引用视为strong WeakReferen
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • 在 Perl 中使用数据引用的正确方法

    我有一组想要处理的数据 为了简化我的代码 最好通过指向原始数据的引用数组来访问我的数据的某些子集 比解释更好的是 我写下了这个例子 它还没有工作 最后 我想更新原始数据 而不必更新所有子集 用 Perl 可以做这样的事情吗 usr bin
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS

随机推荐

  • maven依赖插件忽略依赖版本? [复制]

    这个问题在这里已经有答案了 在我看来 maven 依赖插件在计算依赖列表时行为不当 假设这 3 个项目 base1
  • 我什么时候应该在教堂中使用记录和类

    什么时候使用比较有利Record类型与aClass https chapel lang org docs latest primers classes html highlight classes在教堂 在 IRC 上有人提到记录可以更好地
  • 使用 preg_split 分割和弦和单词

    我正在编写一小段播放处理歌曲标签的代码 但我遇到了一个问题 我需要解析每首歌曲选项卡行并将其拆分以获取大块chords一方面 并 且words在另一个 每个块就像 line chunk array 0 gt part of line con
  • ${ARGUMENT+x} 在 Bash 中意味着什么? [复制]

    这个问题在这里已经有答案了 我有一个使用以下语法的 bash 脚本 if z ARGUMENT x then 参数名称后面的 x 语法是什么意思 这意味着如果 ARGUMENT设置后 它将被字符串替换x 让我们在 shell 中尝试一下 e
  • 使用 PHP 调用涉及枚举的 Web 服务 (SOAP)

    我希望使用 SOAP 从 PHP 调用 Web 服务 使用包含的 SOAP 扩展 有问题的网络服务是http www webservicex net CurrencyConvertor asmx http www webservicex n
  • Eclipse 插件:应有的自动完成功能

    我有一个问题 有多种可能的解决方案 我正在学习计算机科学 目前正在担任实习生 我的任务是为 Android 和 iOS 制作一个商业应用程序 我现在已经使用 Visual studio 2010 工作了 2 年 Xcode 相当相似 所以这
  • 控制绘图中 x 轴上出现哪些刻度线/标签?

    我想控制 X 轴上显示的刻度线 以下代码将刻度线放置在 5 的序列中 位于 5 10 15 30 library plotly df lt data frame x 1 30 y sample 100 300 size 30 replace
  • 是否可以在一台机器上使用 GitHub 和 GitLab?

    我的账户位于GitHub and GitLab 我生成了 RSA 密钥并将其添加到我的帐户中GitLab 但现在我需要与GitHub在第二个项目上 我知道GitLab和GitHub都使用git 请告诉我是否可以在一台机器上使用 GitHub
  • UIButton 的图像随滚动视图滚动,但其操作/方法仍保留在原始位置

    我有一个自动滚动的 UIScrollView 我使用 initWithFrame 创建了几个按钮 每个按钮都有一个图像和一个独特的操作 方法 并将它们全部添加到滚动视图中 按钮的图像可以随着滚动视图自动滚动 但是当我单击每个按钮时 这不是我
  • 如何取消“等待上传”?

    我知道这不是一个编程问题 但我想知道是否有人可以快速帮助我 我发现 iTunes Connect 中的某个应用程序存在 等待上传 的小问题 我怎样才能取消这个 谢谢 答案是上传二进制文件 然后取消它
  • echo 完整的 joomla 查询(带有限制等)?

    我想知道是否有一种方法可以用 limit 和 limitstart 等来回显完整的查询 我可以回显 query 行 但我想看看为什么限制不起作用 但我似乎无法理解它显示发送到数据库的实际查询 代码如下 params JComponentHe
  • 如何从DLL中提取字符串资源

    我正在制作管理系统文件扩展名的应用程序 但遇到问题 系统扩展如 jpg exe dll png txt等有一个名为FriendlyTypeName 例如 FriendlyTypeNamejpeg 文件的内容是 SystemRoot Syst
  • 如何设置 HTML5 表单验证消息的样式? [复制]

    这个问题在这里已经有答案了 我正在使用 必需 的 HTML5 验证 但气泡消息正在我的屏幕中创建滚动条 因为输入字段尺寸很小并且位于右侧 所以我想更改气泡消息以显示输入字段的左侧或更改其样式 HTML5 表单
  • Python:我可以修改元组吗?

    我有一个 2 D 元组 实际上我以为 它是一个列表 但错误说它是一个元组 但无论如何 该元组的形式为 浮点数 val prod id 现在我有一个字典 其中包含 key gt prod id 和 value prod name 现在 我想将
  • 绝对位置在固定位置内不起作用

    div div div div Both main and inner集装箱取走position fixed 内胆的制作方法position absolute和主容器position fixed 你需要定义top right bottom
  • Javafx-场景快照不显示值和系列

    我制作了一个非常短的应用程序 它使用 javafx 生成图表 应用程序显示正确的值 图表 但当我做快照时 图像仅显示轴和标签 但不显示系列和值 stage setTitle Line Chart Sample final DateAxis
  • 使用 chrome canary 执行 selenium python 脚本时如何抑制控制台错误/警告/信息消息

    我正在使用 Chrome Canary 运行 python 脚本 下面的完整脚本链接 进行硒测试 测试似乎运行良好 但是 控制台上显示了大量错误 警告 信息消息 有没有办法抑制这些消息 我努力了 chrome options add arg
  • ToggleButton 控件 VisualStateManager:处理多个悬停状态

    参考我之前的问题 Silverlight MVVM 困惑 基于状态更新图像 https stackoverflow com questions 5034189 silverlight mvvm confusion updating imag
  • 带有“null”PendingIntent 的通知

    我正在尝试在 Android 中实现通知 现在我有一个问题 我不想再有一个PendingIntent该用户将打开任何Activity 我怎样才能做到这一点 PendingIntent contentIntent PendingIntent
  • 对于范围从 0 到最大值的 uint64_t 键,最佳哈希函数是什么?

    假设我们有一组元素并希望将它们存储在哈希映射中 例如std unordered set 并且每个元素都有一个 type 的键uint64 t其值可以从 0 到最大可能值变化 使用简单哈希函数 其中键的哈希值就是键本身 是最佳选择吗 它是否取