根据任何给定字符串生成整数(不使用 GetHashCode)

2023-12-20

我正在尝试编写一种方法来根据任何给定的字符串生成整数。当对两个相同的字符串调用此方法时,我需要该方法两次生成相同的整数。

我尝试使用 .GetHasCode() 但是,一旦我将项目移动到另一台机器,这是非常不可靠的,因为 GetHasCode() 对同一字符串返回不同的值

同样重要的是,碰撞率必须非常低。到目前为止,我编写的自定义方法在几十万条记录后就会产生冲突。

哈希值必须是整数。字符串哈希值(如 md5)会在速度和加载开销方面削弱我的项目。

整数哈希用于执行极其快速的文本搜索,我的工作非常出色,但它目前依赖于 .GetHasCode() 并且在涉及多台机器时不起作用。

任何见解都将不胜感激。


MD5 哈希返回一个可以转换为整数的字节数组:

var mystring = "abcd";
MD5 md5Hasher = MD5.Create();
var hashed = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(mystring));
var ivalue = BitConverter.ToInt32(hashed, 0);

当然,您正在从 128 位哈希转换为 32 位 int,因此会丢失一些信息,这会增加冲突的可能性。您可以尝试将第二个参数调整为ToInt32查看 MD5 哈希的任何特定范围是否比其他范围对您的数据产生更少的冲突。

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

根据任何给定字符串生成整数(不使用 GetHashCode) 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐

  • 全局默认超时是多少

    Python 3 4 尝试查找 urllib request urlopen 中的默认超时是多少 它的签名是 urllib request urlopen url data None 超时 cafile None capath None c
  • Django 1.5b1:执行 django-admin.py 导致“没有名为设置的模块”错误

    我最近安装了 Django 1 5b1 我的系统配置 OSX 10 8 Python 2 7 1 虚拟环境 1 7 2 当我打电话时django admin py命令我收到以下错误 devel ninja Django 1 5b1 djan
  • IntelliJ Structural Search 用于查找实现 A 但未实现 B 的类

    我正在尝试使用 IntelliJ 10 5 的 结构搜索 功能来查找实现接口的类 A但不实现另一个接口 B 首先搜索实现的类A 然后将搜索范围限制为 以前的搜索结果 很容易将其减少为仅搜索未实现的类B 这在概念上非常简单 不幸的是 我还没有
  • 从 SoundCloud 的 Waveform.js 库获得更好的质量

    目前我正在使用 Waveform js http waveformjs org http waveformjs org 从 SoundCloud 轨道生成波形 不幸的是生成的canvas图像质量非常低 尤其是在视网膜上 我想创建与 Soun
  • 如何在 Selenium webdriver 中录制视频 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有每天晚上运行的自动化脚本 大约 350 个脚本或测试用例 我想录制每个测试用例 Python 脚本
  • 访问短信收件箱

    如何从应用程序 在 Symbian s60 上 访问 SMS 收件箱 我们可以用j2me吗 C 或 Python 怎么样 从 j2me 中的收件箱读取消息是不可能如果您想阅读短信 那么您可以使用特定端口发送消息并 你的 j2me 应用程序应
  • lerna add :找不到可以添加 的包

    已将 lerna 添加到我的项目中 我已通过成功运行此命令将包添加到我的服务器 lerna add types express dev 但是当我想添加另一个时 lerna add graphql class validator type g
  • 具有多个目标可执行文件的 Swift 包管理器?

    有谁知道 Swift 包管理器是否支持从一个包中生成多个可执行文件 我有一个 C 程序需要迁移到 Swift 目前它被打包为具有多个目标的 makefile 我有点困惑如何将其映射到 Swift 包 或者它是 包 Yes project p
  • Domino Designer:从嵌入视图访问选定的行

    我再次有一个关于 Domino Designer 的问题 有些时事通讯应分配给多个联系人 因此 我构建了一个包含组合框的表单来选择新闻通讯 下面有一个嵌入视图 其中包含所有可用的联系人 Combobox ComboBox Newslette
  • 无法导入名称 TEMPLATE_CONTEXT_PROCESSORS

    我尝试使用 virtualenv 但一切都出了问题 我停用 停用 所有 virtualenv 当我尝试启动时 python manage py runserver 我收到此错误消息 Traceback most recent call la
  • “JSON”和“jQuery”在 Internet Explorer 7 和 8 中仍未定义

    我把这三个流行的脚本包含在我的 tags 当我检查 IE7 和 8 中的错误时 我得到以下信息 JSON 未定义 IE7 jQue
  • 如何从 Windows 8 WInJS 应用程序中启动 IE10 中的 URL?

    这可能是一个愚蠢的问题 但我一直无法找到答案 我想从我的 Windows 8 javascript 应用程序中使用 IE10 启动特定 URL 即我的应用程序将暂停 而 IE10 将启动 我如何用 JavaScript 做到这一点 谢谢 提
  • 将数组存储为字段值或将数组值存储为记录是一个好主意吗?

    在我的应用程序中 我有 文章 类似于帖子 推文 文章 它们标有描述性预定义标签 即 困难 简单 红色 蓝色 业务 等 这些可用标签存储在一个表中 称为 标签 其中包含所有可用标签 每篇文章都可以标记多个标签 并可通过自定义管理界面进行编辑
  • 单独项目中 MVC 解决方案中的 Web API

    我正在创建一个新的 MVC4 项目 研究使我相信现在通过 Web API 框架而不是控制器操作可以更好地实现从 javascript 到服务器端的通信 我对此的理解正确吗 我假设我可以在 Web API 和 MVC 控制器之间共享我的所有属
  • FLAG_DISMISS_KEYGUARD 不再适用于 Android Lollipop?

    正如标题所示 我惊讶地发现 FLAG DISMISS KEYGUARD 标志在 API 21 Lollipop 上不再起作用 在 Kitkat 中 设置此标志将消除不安全的键盘保护 那么这是一个功能还是一个错误 解决方法是什么 通过 Pow
  • 如何使用 pymongo 连接到现有文档集合/数据库?

    在命令行上 这有效 mongo gt show dbs mydatabase 1 0GB 然而 这并不 python gt gt gt import pymongo gt gt gt connection pymongo MongoClie
  • TFS 2013 无法与 IIS 反向代理一起使用

    我正在尝试使用 IIS 反向代理使网络上的不同用户组可以访问我的 TFS 服务器 我在反向代理服务器上启用了匿名身份验证 URL 重写和 ARR 每当我尝试连接到 TFS 服务器时 都会收到 401 错误 并且无法正确输入密码 我已经尝试过
  • 如何使用 React 的 Router v4 History.push() [重复]

    这个问题在这里已经有答案了 注意 我对 React 和 Meteor 还很陌生 所以在回答我的问题时请非常具体 我正在尝试使用 Meteor 和 React 制作一个短信应用程序 但是 我正在使用的教程是使用 React v3 我想知道如何
  • 自定义 Json 序列化器,通过忽略类属性来序列化和反序列化所有属性

    我想序列化我的类的所有属性 但想在返回响应时隐藏一些属性 我正在使用 NewtonSoft Json Net 进行序列化 例如 在下面的类中 我想序列化这两个属性 但我只想返回 PlaceName 有什么办法可以做到这一点吗 DataCon
  • 根据任何给定字符串生成整数(不使用 GetHashCode)

    我正在尝试编写一种方法来根据任何给定的字符串生成整数 当对两个相同的字符串调用此方法时 我需要该方法两次生成相同的整数 我尝试使用 GetHasCode 但是 一旦我将项目移动到另一台机器 这是非常不可靠的 因为 GetHasCode 对同