📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
楼主: gougou9901
跳转到指定楼层
上一主题 下一主题
收起左侧

Berkeley CS 61B Data Structures(in Java) Homework6 加分+讨论帖

 
🔗
hypsm 2016-1-30 17:35:07 | 只看该作者
全局:



这次作业写了好久。。 一开始犯了超傻逼的错误,非要重写List改成泛型,忘记object是所有类的超类,entry可以直接作为item了...
然后关于simpleBoard的hash函数纠结了好久,一直觉得直接舍弃高位是不对的,然而并没有找到很好的解决方法...
总之这次作业让我对哈希有了更深的理解,赞!
回复

使用道具 举报

🔗
frk 2016-1-31 10:01:53 | 只看该作者
全局:
这次作业更透彻的理解了hashTable, 一个array ,每个index 又对应了一个list. list node 的item ,object又对应着Entry 这个object。
在输入参数时用到了BankApp中的方法。

回复

使用道具 举报

🔗
buildgood 2016-2-11 22:29:11 | 只看该作者
全局:
总算有点明白hashcode了

hw6.png (16.36 KB, 下载次数: 1)

hw6.png
回复

使用道具 举报

🔗
阿童木 2016-2-28 11:57:00 | 只看该作者
全局:
buildgood 发表于 2016-2-11 22:29
总算有点明白hashcode了

层主,请问能不能分享一下你的hashCode和compression function的代码?
我纠结了很久。hashcode我用readme里的方法,就是看作64位的3进制数然后转化成int型舍去高位;compression function按照readme和课堂讲义里的方法是((a * hashcode + b) % p) % N,可是a,b,p的取值又该怎么取?我是随便取了2个整数a,b和一个大素数p,这样做对吗?
可是为什么我的程序最终的运行结果actual collision数和expected collision数差的很多呢?
回复

使用道具 举报

🔗
阿童木 2016-2-28 12:02:04 | 只看该作者
全局:
做是做完了,可是我的actual collision和expected collision差很多?
是不是因为我的hashcode或者compression function写得不好?
hashcode我用readme里的方法,就是看作64位的3进制数然后转化成int型舍去高位;compression function按照readme和课堂讲义里的方法是((a * hashcode + b) % p) % N,可是a,b,p的取值又该怎么取?我是随便取了2个整数a,b和一个大素数p,这样做对吗?
跪求大神解答
如果可以的话,能不能分享一下你们的hashcode和compression function代码?

付运行结果:


回复

使用道具 举报

🔗
阿童木 2016-2-28 12:04:58 | 只看该作者
全局:
hypsm 发表于 2016-1-30 17:35
这次作业写了好久。。 一开始犯了超傻逼的错误,非要重写List改成泛型,忘记object是所有类的超类,e ...

层主,请问能不能分享一下你的hashCode和compression function的代码?
我纠结了很久。hashcode我用readme里的方法,就是看作64位的3进制数然后转化成int型舍去高位;compression function按照readme和课堂讲义里的方法是((a * hashcode + b) % p) % N,可是a,b,p的取值又该怎么取?我是随便取了2个整数a,b和一个大素数p,这样做对吗?
可是为什么我的程序最终的运行结果actual collision数和expected collision数差的很多呢?
回复

使用道具 举报

🔗
hypsm 2016-2-28 12:16:03 | 只看该作者
全局:
阿童木 发表于 2016-2-28 12:04
层主,请问能不能分享一下你的hashCode和compression function的代码?
我纠结了很久。hashcode我用read ...

给你发了私信。

评分

参与人数 1大米 +5 收起 理由
阿童木 + 5 感谢分享!

查看全部评分

回复

使用道具 举报

🔗
阿童木 2016-2-28 12:26:40 | 只看该作者
全局:
hypsm 发表于 2016-2-28 12:16
给你发了私信。

太感谢啦!!!
回复

使用道具 举报

🔗
阿童木 2016-2-28 17:23:52 | 只看该作者
全局:
据前面的一些层主和readme里的提示,expected collision和actual collision越接近,说明hashcode和compression function越好。
但是,当用SimpleBoard做哈希表时,每次测试插入hashTable的元素是不同的(每个SimpleBoard都用随机数生成,每次测试都不同),那么每次测试对应的hashcode值也不同,压缩后映射到哈希表中的分布就不同,所以每次测试的actual collision的都会不同啊!?
这样每次和expected collision比较的结果都不同,这样又怎么去评估hashcode和compression function的优劣呢?
有没有小伙伴可以解释一下?
或者是我从一开始就理解错了?
好纠结,求解!
回复

使用道具 举报

🔗
阿童木 2016-2-28 17:25:53 | 只看该作者
全局:
hypsm 发表于 2016-2-28 12:16
给你发了私信。

同学好,我看了你的代码,很受益!但是我还是有一点不明白的,想向你请教:
据前面的一些层主和readme里的提示,expected collision和actual collision越接近,说明hashcode和compression function越好。
但是,当用SimpleBoard做哈希表时,每次测试插入hashTable的元素是不同的(每个SimpleBoard都用随机数生成,每次测试都不同),那么每次测试对应的hashcode值也不同,压缩后映射到哈希表中的分布就不同,所以每次测试的actual collision的都会不同啊!?
这样每次和expected collision比较的结果都不同,这样又怎么去评估hashcode和compression function的优劣呢?
是我从一开始就理解错了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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