gpt4 book ai didi

c++ - 查找表是哈希表的一种形式吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:41 25 4
gpt4 key购买 nike

我想看看我在这里的概念是否正确。 .

如果我试图避免为 float 据数组 x 中的每个元素计算计算量大的 someExpensiveFun(x),假设有界值在 0 和 1 之间,可以先预先计算昂贵函数的输出并将其存储在表中。 . .

for (int nn = 0; nn < 1000; ++nn)
{
float tmp = ((float)nn) / 1000.f;
lookup[nn] = someExpensiveFun(tmp);
}

然后在性能关键代码的主体中我可以使用 . . .

y = lookup[(int)floor(x*1000.f)];

lookup 称为哈希表的一种形式并将 x*1000 称为相关的哈希函数在概念上是否正确(而不是滥用术语)?

最佳答案

我个人认为这是对术语的滥用。它缺乏人们自然希望从哈希表中获得的属性,特别是能够对具有相等哈希值的非相等键进行处理。而且我很确定您的“哈希函数”必须被视为 floor(x*1000.f)(int)floor(x*1000.f) ,而不仅仅是 x*1000.f

哈希表通常也可以接受其键类型的任何值作为键,而不仅仅是一个范围内的值,但也许我在那里太挑剔了。我不会将不允许 NaN 作为键的其他正常哈希表称为“不是哈希表”。

它与哈希表(一种将键映射到整数的非单射函数,表示整数用作数组中的索引)有一些共同的属性。如果有人想决定这两个东西一起表征“哈希表”,好吧,祝他们好运,这是一个哈希表:-)

关于c++ - 查找表是哈希表的一种形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12501367/

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