【发布时间】:2017-05-03 14:28:12
【问题描述】:
看书Mining of Massive Datasets,第1.3.2节有Hash Functions的概述。没有计算机科学背景,这对我来说很新鲜; Ruby 是我的第一语言,hash 似乎等同于Dictionary<object, object>。而且我从未考虑过如何将这种数据结构组合在一起。
本书提到了散列函数,作为实现这些字典数据结构的一种手段。本段:
首先,哈希函数 h 将哈希键值作为参数并产生 结果是一个桶号。桶号是一个整数,通常在 范围 0 到 B - 1,其中 B 是桶的数量。哈希键可以是任何 类型。哈希函数有一个直观的属性,它们“随机化” 哈希键
就hash function 而言,桶究竟是什么?听起来桶是array-like 结构,而hash function 是某种算法/array-like-structure 搜索每次都会产生相同的桶号?这个比喻性的桶里有什么?
我一直读到 javascript 对象/ruby 哈希/等不保证顺序。在实践中,我发现键的顺序不会改变(实际上,我认为使用旧版本的 Mozilla 的 Rhino 解释器会改变 JS 对象顺序,但我不能确定......)。
这是否意味着这些 hash functions 无法解析哈希 (Ruby) / 对象 (JS)?
hashing 这个词是否会根据您使用计算机的水平而具有不同的含义?也就是说,看起来 Ruby 散列与 C++ 散列不同......
【问题讨论】:
标签: hash-function