gpt4 book ai didi

algorithm - 计算 0..n 范围内的哈希函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:06 26 4
gpt4 key购买 nike

我有一个字符串数组。数组的长度为 n。如何计算每个字符串的散列键,使每个键都是 0..n 范围内的数字?

更新

数组的项目可以不是字符串,而是数字,如果它能帮助别人帮助我的话;)

最佳答案

尝试对 N 取模:

int N = array.Length;
int hashMaxN = strings[i].GetHashCode() % N;

这不能保证不同索引的唯一哈希值。但是哈希码不是唯一的。

如果你想为列表中的每个字符串分配一个唯一的 id,那么使用另一个答案的建议:在不同字符串的排序数组中选择字符串索引

int itemHash = myList.Distinct().OrderBy(s => s).IndexOf(item);

这将具有相同字符串的属性,无论列表如何排序但是向列表添加字符串将更改项目的哈希代码。

关于algorithm - 计算 0..n 范围内的哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8422037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com