来到CMoney近两个月
不到两星期就要发表我们游戏专题了
或许会有人不知道做游戏专题有什么好处
比起架设网页等...差在哪了?
我最大的感触应该就是在逻辑方面会有所突破
从画面逻辑到游戏运作逻辑
如何融合组员的程式码
在这个阶段是吸收最多知识的期间了
本週学习
杂凑
->把数值(key)转换成位置
如果数值是字串:换成ACSII code
重点:
杂凑是不可逆的
常用在Map,加密
常用hash:
Hashing by division当除数为偶数,奇数数字余数必为奇数,偶数数字余数必为偶数
资料的分布将造成 bucket倾向于偶数/奇数
当除数为奇数,除出来的余数不一定为固定偶数/奇数
不会因为资料而侧重于一端Mid-square:
取 key 的平方转为二进位,并取中间适当位数的值
二进位数中0~22^r-1区间,换算成十进位Folding:Shift foldingFolding at the boundaries
将key k切割成数个部分,将每个部分相加后即为k位址
Over flow溢出:
解决方法:
通常使用以下方式:Open addressing:于未满的bucket找出空位填入-> Linear probing, Quadratic probing, Random probingChaining: 每一个 bucket 存放对应的 list 来储存所有 home bucket
-> Chain, Array linear list