iT邦幫忙

0

CMoney菁英軟體工程師戰鬥營_Week 8

來到CMoney近兩個月
不到兩星期就要發表我們遊戲專題了
或許會有人不知道做遊戲專題有什麼好處
比起架設網頁等...差在哪了?
我最大的感觸應該就是在邏輯方面會有所突破
從畫面邏輯到遊戲運作邏輯
如何融合組員的程式碼
在這個階段是吸收最多知識的期間了


本週學習

雜湊

->把數值(key)轉換成位置
如果數值是字串:換成ACSII code

重點:

雜湊是不可逆的
常用在Map,加密

常用hash:

  • Hashing by division
    當除數為偶數,奇數數字餘數必為奇數,偶數數字餘數必為偶數
    資料的分布將造成 bucket傾向於偶數/奇數
    當除數為奇數,除出來的餘數不一定為固定偶數/奇數
    不會因為資料而側重於一端
  • Mid-square:
    取 key 的平方轉為二進位,並取中間適當位數的值
    二進位數中0~22^r-1區間,換算成十進位
  • Folding:
    • Shift folding
    • Folding at the boundaries
      將key k切割成數個部分,將每個部分相加後即為k位址

Over flow溢出:

解決方法:

  • 通常使用以下方式:
    • Open addressing:於未滿的bucket找出空位填入
      -> Linear probing, Quadratic probing, Random probing
    • Chaining: 每一個 bucket 存放對應的 list 來儲存所有 home bucket
      -> Chain, Array linear list

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言