ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: Zamyi

[分享] 哈希表原理和实现

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-11 22:14 | 显示全部楼层
A列是32个棋子(不让子) 的初始位置对应的 散列数;
局面索引号 43199338  就是这32个数值 XOR的结果值;
mv 代表下一步 可能的几种走法(对应棋盘上2个位置)。
知道这些 就能 象棋的 开局库 自由Diy 了!

0411.jpg

TA的精华主题

TA的得分主题

发表于 2018-4-11 22:38 | 显示全部楼层
一帖一帖的看下来有几句话想说。
从一开始明白数组使用数组不久,我就幻想过将字符串变成数字来充当数组索引,那时候根本不知道哈希这个词。做过一些尝试,用各种办法将字符串变成数字再弄一个或几个Long型数组,结果都得不偿失。明白这是一个数学问题,自己的脑细胞不够。后来才知道哈希这个名词,粗略读了一下,居然是为了解决和我当初想法一样的问题,但确实没有信心和勇气去研究,人懒脑细胞又不够,只想坐享其成。
一个数学问题,目的就是为了个速度,数学上如果有了解决办法,编程实现应该很简单。怎么说着说着C、C#、Java都跑出来了,和这些有个毛关系。
楼主的这个有什么问题吗?如果有,请用事实指出它的弊端,夸夸其谈了那么多高级名词不见一句实现的代码有什么用?
用楼主的方法我做了百万级数据的测试,数组下标越大,余数重复的可能性就越小,相对的代码运行速度就越快。数学问题我真的一点点也不想去想也想不明白,编程实现上目前倾向于用尽可能的大下标,用面具换时间,只是不知道这样会不会出问题。

点评

EH很多人都是这个毛病,只想看代码抄代码改代码,没几个知道理论比代码更重要。所以经常闹笑话而不自知。  发表于 2018-4-12 07:19

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-4-11 22:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-4-12 08:40 | 显示全部楼层
HHAAMM 发表于 2018-4-11 22:57
https://blog.csdn.net/tanggao1314/article/details/51457585

这个帖讲的浅显易懂些。

是的。

一场拍卖会中,物品是价高者得,如果每个人只有一次出价机会,同时提交自己的价格后,最后一起公布,出价最高则胜出。这种形式存在作弊的可能,如果有出价者能 hack 进后台,然后将自己的价格改为最高价 +1,则能以最低的代价获得胜利。如何杜绝这种作弊呢?

答案很简单,参与者都提交自身出价的 hash 值就可以了,即使有人能黑进后台也无法得知明文价格,等到公布之时,再对比原出价与 hash 值是否对应即可。是不是很巧妙?

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-4-12 10:25 | 显示全部楼层
HHAAMM 发表于 2018-4-11 22:38
一帖一帖的看下来有几句话想说。
从一开始明白数组使用数组不久,我就幻想过将字符串变成数字来充当数组索 ...

是怎样一个笑话,能说明吗?

TA的精华主题

TA的得分主题

发表于 2018-4-12 10:36 | 显示全部楼层
本帖最后由 HHAAMM 于 2018-4-12 10:38 编辑

人家弄点东东出来共享,你认为哪儿不对就指出来,用事实说话。
Ctrl+C、Ctrl+V了一堆估计你自己也不明白的文字,就是为了显摆自己懂得多吗?
要是真懂你也来段代码试试吗!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-4-12 11:18 | 显示全部楼层
HHAAMM 发表于 2018-4-12 10:36
人家弄点东东出来共享,你认为哪儿不对就指出来,用事实说话。
Ctrl+C、Ctrl+V了一堆估计你自己也不明白的 ...

回复一个,只是让你看清我的ID,别再找错对象了。

TA的精华主题

TA的得分主题

发表于 2018-4-12 11:47 | 显示全部楼层
joforn 发表于 2018-4-12 11:18
回复一个,只是让你看清我的ID,别再找错对象了。

确实看错了,sorry.

TA的精华主题

TA的得分主题

发表于 2018-4-12 11:49 | 显示全部楼层
HHAAMM 发表于 2018-4-12 10:36
人家弄点东东出来共享,你认为哪儿不对就指出来,用事实说话。
Ctrl+C、Ctrl+V了一堆估计你自己也不明白的 ...

你可能不知道去哪下载vb源代码,我推荐你百度找一下。vb写的哈希表至少有十几个现成的代码,如果你找不到的话,说明你确实不是搞开发的

TA的精华主题

TA的得分主题

发表于 2018-4-12 13:28 | 显示全部楼层
liucqa 发表于 2018-4-12 11:49
你可能不知道去哪下载vb源代码,我推荐你百度找一下。vb写的哈希表至少有十几个现成的代码,如果你找不到 ...

楼上香侠的回帖提醒了我,之前与你的争论,思路局限在哈希查找上了。也难怪你发出“鸡同鸭讲”的感叹。

不过话又说回来,本帖的题目是“哈希表原理和实现”,其实就是“哈希查找原理与实现”,从楼主的文字介绍到给出的实例,我觉得除介绍的不够清晰外,没有什么问题的,而你给出的链接及Ctrl+C、Ctrl+V的内容,也是在讲哈希查找的,怎么说到后来你就拿哈希算法来证明楼主介绍的不是“真正的哈希表”呢?况且至今也没见你拿出你的“真正的哈希表”示人。

认同楼上HH版主的说法,别总是Ctrl+C、Ctrl+V或让人去百度,你就不能来点实在的,上一段能证明自己观点的VBA代码,或解一个与此相关的题目。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-20 20:29 , Processed in 0.043655 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表