2023年7月26日 聯合報 科技.人文聯合講座

手機末三碼的巧思與妙用

趙坤茂

不知你是否曾經電話訂餐後,到餐廳時卻忘了取餐編號呢?一時想不清是六號、八號,還是十七號?試想如果這編號與自己相關,即使一時忘記,但只要店家提示一下,是不是就能馬上回想起來呢?

為避免消費者忘了編號,當今很多餐廳都以消費者的手機門號末三碼當作取餐編號。若取餐時忘了編號,消費者還能根據自己的電話號碼推算取餐編號。當然,若連自己電話號碼都會忘記的人士,恐怕也會忘了去取餐吧!

「手機門號末三碼」的概念,相當於「將手機門號除以一千後得到的餘數」,可算是一種雜湊函數(hash function)的運算。雜湊函數可將輸入資料,經過某些運算後,轉化為一個雜湊值。例如,「姓名筆畫」就是一種雜湊函數,「王大明」的姓名筆畫雜湊值為十五,筆者姓名的雜湊值為卅三。

取餐時難免會碰到與他人手機末三碼相同的情況,這時店家就會再問訂餐時間和訂餐內容等資訊,以解決末三碼衝突問題。店家會在意的是同時段內,出現末三碼相同的機率有多高?回答這問題前,讓我們先談談「生日問題」(birthday problem),亦即隨機找一些人,至少有兩人生日相同的機率有多高?其實,只要能算出大家生日都不相同的機率,我們就能推算至少有兩人生日相同的機率。

令人驚訝的是,當人數達廿三人時,至少有兩人生日相同的機率就已過半;當人數達五十人時,其機率就超過九成七;當人數達六十人時,其機率甚至遠遠超過九成九。回想起來,在我們就學階段時,同班同學裡出現生日相同的情況雖然看來很湊巧,但其實並不罕見,原來就是這個道理。

手機末三碼從000999共一千個數,比三百六十六個生日數目還多。因此,在同時段內,訂餐顧客人數須達卅八人時,才會有過半機率出現相同的末三碼。如果只取手機末兩碼,這時僅有一百個可能的數字,比生日數目還少,使得只要超過十二人,就會有過半機率出現相同的末兩碼,故生意興旺的店家鮮少採用手機末兩碼。

那麼,如果取手機末四碼呢?這時共有一萬個數,要超過一百一十八人,才會有過半機率出現相同的末四碼。雖然衝突機率較末三碼更低,但四碼在口述及比對上較費工,故多數店家在取捨間仍以末三碼為主。其實,若要完全不衝突,可取整支電話號碼,但這時除更費工外,還有個資外洩的疑慮。

如今,當我們到超商取貨時,手機末三碼也是常用的關鍵字。然而,超商堆放的包裹數量往往盈千累百,很容易就出現末三碼相同的情況。因此,除了手機末三碼外,往往通常還要報上姓氏,才能順利取得包裹。付款前,請仔細檢視包裹的收發訊息及樣態,以免誤拿同姓氏及同末三碼的包裹,或者更慘的是,拿到詐騙集團寄來的詐財空包!

【2023/7/26 聯合報】