寻找用于在特定哈希中转换键和值的算法名称

时间:2011-08-19 15:43:20

标签: algorithm naming

更新:让我详细说明关闭者:我要求提供例行公事的名称。 我试图尊重Principle of least astonishment,命名非常重要。

此外:如果这是一个很常见的例程,而且我的猜测是, 。当我知道这个名字的时候,我只想说一件事,谷歌就可以了。

我需要在javascript中'扭转'一个哈希,如下所示。 (值始终是数组)。函数turnaround()不是问题(我已经写过了),但名字是。

我在这里做了什么,或者以不同的方式将这个例程命名为什么?

如果它不是一个众所周知的算法,我应该如何命名它以便名称定义它正在做什么?

true == ( (h2 == turnaround(h1)) && (h1 == turnaround(h2))


h1 : {
    a : [ 2, 3 ],
    b : [ 3, 4 ],
    c : [ 2, 4 ],
    d : [ 1, 5 ] }

h2 : {
    1 : ["d"], 
    2 : ["a","c"], 
    3 : ["a","b"], 
    4 : ["b","c"], 
    5 : ["d"] }

3 个答案:

答案 0 :(得分:2)

通常,如果您有一个将键与值列表相关联的映射,则从值到键列表的相应映射称为 inverted index 。由于您正在为特定映射构建倒排索引,因此您可以将函数调用为createInvertedIndexinvertIndex的效果。

答案 1 :(得分:1)

你的功能是turnAround(turnAround())= Identity。

turnAround = turnAround ^ -1

当应用turnAround(h)时,你会发现唯一元素h ^ -1,这样h = turnAround(h ^ -1)

因此你反转了h。 (inverse function

您可以将其称为 inverseHashFunction

我认为这很明确,

否则 reciprocalHash reciprocalBijectionHash ?等...

答案 2 :(得分:1)

如果您愿意,您可以将哈希视为描述关系R,根据x R y的定义,当且仅当y在h1[x]中时。

然后,turnaround函数的返回值以相同的方式描述反向关系:根据定义y R -1 x当且仅当x R y时。当且仅当x在turnaround(h1)[y]中时才会发生。

因此,如果您实际上使用h1h2作为关系的描述,那么我将其称为invertedRelation或类似的。如果你没有将它们用作关系的描述(或者你正在使用它们,但是你的读者并不熟悉数学术语“关系”),那可能会让人感到困惑。

您真正使用哪些变量名称来表示这些哈希值?如果您对功能名称具有描述性而狂热,那么您肯定不会真正调用变量h1h2