gpt4 book ai didi

c - 用于快速查询的整数 vector 散列

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

我用 3x2 vector 表示单项式。例如,

x y z   : ( (variable id, exponent of variable) ) 

: ( (1,1) , (2, 1) , (3,1) )

x^2 z^2 : ( (1,2) , (3,2) , (null, null) )

不同变量的总数是一百万,但一个单项式最多包含三个不同变量。

我想做这样的查询

  1. x 是否在单项式 y^2 z^2 中?
  2. y^2 z^2y 的幂是否大于 3

是否有一个哈希函数可以在 O(1) 中回答这些问题?
或者我应该只遍历 3x2 vector 吗?

我问是因为我维护了一个包含 500 万个这样的单项式的哈希表。因此,默认情况下,我必须使用散列结构进行搜索。也许有一种哈希方案也可以回答上述两个问题。

相关问题:best codebook for manipulation of monomials

最佳答案

我认为您必须遍历 3x2 vector 。

有人可能会争辩说循环 vector 是一种 O(1) 操作。为什么?因为 vector 中的条目数恰好是 3,这是一个很小的常量。换句话说,循环计数与大数无关:

  • n 是变量的数量,
  • m 这是单项式的数量。

mn 有多大(或多小)无关紧要,循环遍历 vector 总是花费相同的时间,所以它在技术上是一个 O (1)操作。

关于c - 用于快速查询的整数 vector 散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40870080/

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