如何从 3 个不同的整数(1 个 Oracle Long、1 个日期字段、1 个 Short)创建唯一的整数

2024-01-08

问题是,第一个数字已经是 ORACLE LONG, 第二个是日期(SQL DATE,没有额外的时间戳信息),最后一个是 1000-100'000 范围内的 Short 值。
如何以最佳方式创建每个组合唯一的哈希值?

字符串连接并稍后转换为:
例如,我不想要这个。

日 月

12 1 --> 121
1 12 --> 121


当您有几个数值并且需要其中有一个“唯一”(即统计上不可能重复的)值时,您通常可以使用如下公式:

h = (a*P1 + b)*P2 + c

其中 P1 和 P2 要么是精心选择的数字(例如,如果您知道“a”始终在 1-31 范围内,则可以使用 P1=32),或者当您对 a、b 的允许范围一无所知时, c 最好的方法是将 P1 和 P2 作为大素数(它们生成冲突值的机会最小)。 对于最佳解决方案,数学比这更复杂一些,但是使用素数通常可以得到一个不错的解决方案。

例如,Java 实现.hashCode()对于数组(或字符串)来说是这样的:

h = 0;
for (int i = 0; i < a.length; ++i)
    h = h * 31 + a[i];

即使就我个人而言,我也会选择大于 31 的素数,因为字符串内的值很容易发生冲突,因为 31 个位置的增量可能很常见,例如:

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

如何从 3 个不同的整数(1 个 Oracle Long、1 个日期字段、1 个 Short)创建唯一的整数 的相关文章

随机推荐

  • 限制对 C++ 中特定类的方法访问

    我有两个密切相关的类 我将其称为 Widget 和 Sprocket Sprocket 有一组方法 我希望可以从 Widget 调用它们 但不能从任何其他类调用它们 我也不想仅仅将 Widget 声明为 Spocket 的友元 因为这将使
  • 如何访问 OpenCV Matcher 上的点位置?

    我正在使用这个 FLANN 匹配器算法来匹配 2 张图片中的兴趣点 代码如下所示 有时代码会找到匹配点的列表 std vector
  • 向 Python 添加宏

    我想调用以下代码in situ无论我提到什么MY MACRO在我下面的代码中 MY MACRO frameinfo getframeinfo currentframe msg We are on file frameinfo filenam
  • 归并排序,递归部分

    研究了几天合并排序后 我从概念上理解了它 但有一点我不明白 我得到什么 1 它需要一个列表 例如一个数字数组 将其分成两半并对两半进行排序 最后将它们合并在一起 2 因为它是一种递归算法 所以它使用递归来做到这一点 因此 上述数组的分割如下
  • 自动代码签名 - 保护私钥

    我想要自动执行一些 ClickOnce 部署工件 应用程序 exe 和清单 的代码签名 我在用signtool http msdn microsoft com en us library windows desktop aa387764 2
  • Java 中前导零如何改变数字文字?

    我和我的朋友在看到它和答案后对Java中的这个说法感到困惑 这是如何运作的 System out printf d 077 等于63 077 is an octal number http en wikipedia org wiki Oct
  • 无法在舞台内跳过舞台

    我有一个阶段在一个阶段内 我想根据条件跳过它when pipeline agent any stages stage Dynamic stages steps script serverAStatus false def tests CLI
  • 如何判断一个对象的类?

    如果上课B和班级C扩展类A我有一个类型的对象B or C 我如何确定它是哪种类型的实例 if obj instanceof C your code
  • 我们是否可以在可能的情况下使用返回值优化,而在没有的情况下使用移动语义,而不是复制语义?

    是否可以编写 C 代码 在可能的情况下依赖返回值优化 RVO 而在不依赖返回值优化的情况下依赖移动语义 例如 以下代码由于条件原因无法使用 RVO 因此它将结果复制回来 include
  • 路由器链接不适用于共享模块内的组件

    我编写了一个名为 Customer 的模块 其中包含登录 主页和注册等多个组件 现在我创建了一个共享模块 它也有 2 个组件 例如页眉和页脚 由于页眉和页脚将由客户模块中的所有组件共享 因此我将它们放置在共享模块中 将共享模块导入到客户模块
  • Woocommerce Checkout 无法使用 WooCommerce 插件的无验证码 reCAPTCHA

    当我激活 No CAPTCHA reCAPTCHA for WooCommerce 插件时 因此在 WooCommerce 的结帐页面上 当客户检查 创建帐户 时复选框和下订单相比 它不起作用 页面只是滚动到顶部 没有任何操作 任何想法 问
  • 参考透明度

    当术语 不可观察 与函数式编程中的术语 引用透明 一起使用时 其含义是什么 您可能知道 术语 引用透明 意味着表达式的值只能依赖于values它的各个部分 而不是关于它们的任何其他事实 例如 它不能依赖于以下内容 表达式的某些部分是否已经被
  • 在Python中对嵌套列表数据进行排序

    我正在尝试对 python 3 8 5 中的嵌套列表进行排序 我有一个清单 例如 1 A 2 5 45 10 2 B 8 15 65 20 3 C 32 35 25 140 4 D 82 305 75 90 5 E 39 43 89 55
  • 如何添加图像以以编程方式查看?

    假设你有一个UIImage image and a UIView v 如何以编程方式在视图顶部显示图像 如果你只是想将 UIImage 添加到 UIView 中 那么你需要在 UIView 和 UIImage 之间添加一个 UIImageV
  • Symfony2:仅更新一个供应商包

    有没有一种方法可以只更新一个包而不更新 deps 文件中的每个包 我目前正在使用 php供应商安装 来安装所有供应商捆绑包 并且不知道有任何命令一次只更新一个捆绑包 1 只需打开你的 deps 文件 deps 2 删除除要更新的包之外的所有
  • 如何使用 python 在文本文件中添加新行而不使用 \n

    我有一个包含文件列表的文件 但它添加了 n最后我怎样才能让python只在新行上写下我需要的信息而不得到 n这样我的信息就会被调用X acc not x acc n 这是我写入文件的代码 def add x nl n acc acc xy
  • 队列管理器和消息代理之间的区别

    Websphere Message Broker 和队列管理器之间有什么区别 我猜队列管理器将消息放入队列 从队列中取出消息 将消息移动到回退队列等 那么代理的工作是什么 它位于发布者和队列管理器之间还是消费者和队列管理器之间 Websph
  • 无法单步执行或中断 Linq 查询/表达式内调用的方法

    我在尝试进入从 Linq 查询中调用的方法时遇到了一个奇怪的问题 尽管我在使用 Linq 表达式时也遇到了这个问题 代码可以编译 并且看起来可以工作 我得到了我期望的结果 IEnumerable
  • 在 WooCommerce 中使 +/- 加号和减号数量按钮以 12 为增量递增

    我一直在尝试解决我认为可能很容易解决的问题 但我似乎无法在任何地方找到任何信息 我的问题是这样的 我正在使用 WooCommerce 建立一个批发商店 并带有最小 最大数量和批发商店插件 我想展示一个简单的产品及其单一单价 没问题 但由于商
  • 如何从 3 个不同的整数(1 个 Oracle Long、1 个日期字段、1 个 Short)创建唯一的整数

    问题是 第一个数字已经是 ORACLE LONG 第二个是日期 SQL DATE 没有额外的时间戳信息 最后一个是 1000 100 000 范围内的 Short 值 如何以最佳方式创建每个组合唯一的哈希值 字符串连接并稍后转换为 例如 我