《從掐指一算到穿越四次元的數學魔術》:教你用手指從0比到超過10億

我們想讓你知道的是
讓每根手指頭呈八種位置,不但意味著你取得了過去不知道的數字靈巧度,還代表你可以從0數到1,073,741,823:超過10億!當然啦,不好的一面就是,你可能會落得不小心加入街頭幫派。
文:麥特.帕克
數是什麼?
你能用手指頭數算到多大的數?嗯,大多數人數算到十就會停住,主要是因為手指頭都數完了,然而並不是每個人都採用這種相當有限的系統,只把手指頭伸直而不彎下。
如果你容許手指頭彎下,那麼你只用兩根指頭就可以數到3。伸直大拇指代表1,食指代表2,兩指同時伸直代表3。現在你的中指可以單獨伸直,代表4;接著,大拇指加上中指代表5,以此類推。這樣你就能一直數到16,而且第一隻手的第五根手指頭還沒用到呢。
利用這套系統,只用手指頭就可以從0一路數到1,023。但我們的人體數字算盤還可以做得更好。如果讓每根手指頭呈彎下、半伸直、完全伸直這三種位置,你就可以從0數到59,048。若更進一步利用四種位置(彎到手掌、半彎、半伸直、完全伸直),範圍就能從0到1,048,575。這已經超過一百萬了,而且是用手指頭數出來的,表現提升了100,000倍,而關節炎的風險只稍微增加了一點。

那幹麼就此打住呢?讓每根手指頭呈八種位置,不但意味著你取得了過去不知道的數字靈巧度,還代表你可以從0數到1,073,741,823:超過10億!當然啦,不好的一面就是,你可能會落得不小心加入街頭幫派。

這是我試出來的最後一招,但究竟能精進到什麼地步?對於手指極為柔韌、腦袋十分敏捷的人來說,可能沒有上限。
屈指數到十與突然高達十億的差異在於,每根手指的位置現在變得很重要,而不止是美化的畫記。當我們用前兩根手指數到三,大拇指伸直時仍然代表1,但食指單獨伸直時則代表2,而不是「普通的」計數(每根手指都相等,即全部都代表1或加1)。
如果繼續下去,按照上圖中的「上下」方向,中指代表4,無名指代表8,小指代表16,我們就能看出一個數列:每根呈直立位置的手指頭代表的數值,都是前一根指頭呈直立時的數值的兩倍。
透過一點實驗,你就可以找到以這兩種位置屈伸手指來表示每種數目的方法(提示:132是可屈指表示出的最挑釁的數目。試試看……或者就算了)。由於每根手指都有兩種選項,所以這稱為二進位系統或二進制。把它寫下來時,可以用0代表彎下的指頭,1代表伸直的指頭。如果你還記得學校教過的數學,就會發現用二進位制書寫時,第一個位置代表1,第二個代表2,第三個代表4,第四個代表8,以此類推。

下一個手指計數系統,是根據每根手指頭各有三種位置(彎下;半伸直或半彎,如果想對此表示悲觀的話;伸直),所以通常叫做三進制。你還可以繼續發展下去:四種手指位置會得到四進制;八種手指位置會得到八進制。
而純粹為了加強記憶(確保我們都有集中注意力):無論是手指還是書寫,每個位置的數值都等於前一個位置乘上進位系統的底數,因此三進制的數列為1, 3, 9,27...,而我們可以用0、1、2這三個數字來表示手指位置的連續階段;又如在八進制中,數列是1, 8, 64, 512...,而由手指的不同位置表示0、1、2、3、4、5、6、7這八個數字。因此,十億的八進位表示法可以寫成7,346,545,000。

這些類型的數構成了一整個族系的「進位的記數系統」,它完全不同於像羅馬數字系統這樣,數字代表的值絲毫不因位置而異的系統。數字V不管出現在數目的哪個位置,都代表5,而在十進制的數3,435中,數字3既代表3,000也代表30,要視位置而定。
羅馬數字是個設計過度的畫記系統,現在的用途遠超出它們原本的能力範圍。進位制記數系統的功能更為強大,因為它們可以輕鬆表示出大大小小的數。當然,在現代世界裡我們幾乎只用十進位記數系統,不過(我會再說一遍)這只是眾多系統的選項之一。
使用了不同的底數,就會有更多製造混淆的機會。我可以把數目轉換成採用迥異數字的系統,比方從十進位轉換到羅馬數字(例如3,435轉成MMMCDXXXV),而要看出轉換之後的數是以什麼系統來書寫的,並不困難:這就類似把一個字翻譯成採用完全不同的字母表的語言,譬如從英語譯成日語。
然而,如果你是把英文字譯成印尼文,因為仍採用同樣的字母表,所以倘若你不知道自己在哪個語言中,就有可能陷入困境了﹝英文:find youself in hotwater(字面意思:發現自己在熱水中),印尼語的「水」是air,變成「發現自己在熱空氣裡」了﹞。
我忍不住想再講一次那個已經太常講的數學「笑話」,這個笑話就是根據這樣的誤解產生出來的,通常會印在T恤上引人發笑:「世上有10種人,也就是看得懂二進位數及看不懂二進位數的人。」解釋一下笑點:「10」是2的二進位表示法,所以只有那些看得懂二進位數的人才會知道它代表2而不是10。
我會給你一點時間笑完再繼續。
我身為數學家兼任脫口秀表演者,要稍稍苛責這則笑話,因為一直有人講給我聽。通常對方會這麼起頭:「對了,你有沒有聽過這個笑話?嗯,這用說的大概不好笑,可是……」然後就繼續設法講完一個要寫下來才會有笑點的笑話。二進位數笑話的問題就出在這裡:要麼很好笑,要不就是不好笑。不過,無論笑料多寡,這個笑話都是很棒的例子,可說明如何根據你使用的系統,以相同的數字、相同的順序來寫出不同的數目。
Tags:
雷亞遊戲作品下載破億的秘密,聯手Google Cloud開源又節流

我們想讓你知道的是
2011 年創立的雷亞遊戲(Rayark Inc.),從 2013 年就攜手 Google Cloud 導入相關雲端服務,雙方合作長達十年的關鍵是什麼?
2011年創立的雷亞遊戲(Rayark Inc.),秉持把感動永久留存在玩家心中的信念與堅持,不論是音樂節奏、休閒趣味、科幻動作、又或是策略RPG不同型態的作品,都希望創造出呈現時代回憶的經典製作。每回推出新款遊戲都能叫好又叫座,雷亞遊戲旗下作品的總下載數,全球上看1.3億次。
「我們的優勢,在於故事的呈現及藝術表現,創造出一個讓玩家與故事有聯結的世界觀,」雷亞遊戲技術長Alvin Chung回應。為了精進作品內涵、拓展遊戲更多可能性,雷亞遊戲從2013年就開始積極將開發架構、維運流程搬遷到雲端環境,進而讓團隊養成敏捷的協作文化。

Alvin Chung解釋,「我們希望把更多心力投入設計遊戲本身,同時優化玩家體驗服務,而不是過度分心或花太多資源去顧及底層網路架構,透過雲端工具源創造更大的效益。」若把一款遊戲從無到有,可拆分為企劃、開發、測試、上線等流程,這些不同階段的工作環境,雷亞目前是放在Google Cloud平台上運行。
完善數據治理工程,雷亞遊戲成立數據部門洞悉營運實況
一款遊戲要讓玩家感動,絕對不能只有感性要素,更需要從理性角度洞察玩家行為數據,才能讓用戶的留存保持穩定。尤其現代企業都知道,數據對於公司經營等同石油的價值,於是,雷亞決定成立數據部門,作為輔佐商業決策判斷的後勤核心團隊。
雷亞遊戲產品發行處數據分析部部長Denny Huang表示,「以前只用database,資料的細緻度不夠;打個比方,透過database只能看存摺的結餘,無法回溯歷程資訊;後來成立數據部門,把伺服器的log收進資料倉儲Google BigQuery,等於帳本的每筆明細都會留下記錄,再結合商業智慧與分析軟體Tableau,讓DAU(日活躍用戶)、MAU(月活躍用戶數)、留存率、付費率這些指標以視覺化圖表完整呈現。」

為了貼近玩家的需求、打造出更符合市場想法的作品,雷亞的營運團隊也希望藉由數據深入鞏固與玩家的黏著度,進而排除不利玩家留存的情境,就能事先透過BigQuery搭配Firebase實現A/B Testing。Alvin Chung舉例,遊戲業相當重視玩家前10分鐘的留存率,如果發現新手歷程在某一區卡關過久,他們就會調閱BigQuery內的玩家行為資料,找出用戶成長停滯的原因,進而修正遊戲的設計機制。透藉由此檢視及驗證方法,促使玩家加入遊戲的前10分鐘留存率提升50%。
盤點目前雷亞數據部門使用BigQuery的數據狀況,每天處理報表容量達9TB、單日300G流量,以及儲存操作紀錄超過300TB。如此龐大的資料量,雷亞也透過BigQuery搭配Tableau,落實更細緻的商業邏輯判斷。
Denny Huang分享其中一個情境:他們想知道玩家在特定戰場,怎麼運用卡牌的排列組合,這時候就能借助BigQuery及機器學習的運算,掌握某個關卡的通關率是否落在合理範圍。後續透過數據分析,找到禮包購買率的最佳時機點,並微調設定禮包內容物,以強化玩家購買誘因,讓特定產品付費率增加17%、 單一活動營收增加16%。
把關伺服器預算有效節流,借助BigQuery從每月縮短到每日掌握報表
如果說提升禮包購買率、留存時間拉長,對於遊戲開發商是「開源」策略,那麼透過Google Cloud來檢視整體服務的運作效率,則屬於「節流」手段。雷亞遊戲就提到,他們所部署的伺服器牽涉相當龐大的機器種類,內容涵蓋資料倉儲單元、資料庫單元、以及運算單元,運行過程勢必就會有所花費,這也是遊戲商的成本之一。
雷亞遊戲網站可靠性工程(SRE)工程師Gene Liu表示,「洞察伺服器維運數據,可以知道我們的後端服務是否有效率?服務品質如何?又或是有沒有讓玩家收到錯誤訊息狀況?透過監控整體後端服務的健康程度以及資源用量,讓我們知道研發資源需優先最佳化哪些項目。」
從上述情境可觀察到,SRE的主要工作就是要確保確保遊戲對內和對外服務的穩定,並且維持一定品質的玩家遊玩體驗。以對內服務來說,遊戲伺服器傳數據給BigQuery的過程,不但要保持通暢,而且也盡可能不會掉失任何資料。不過也因為遊戲玩家來自全球不同時區,等於系統的流量高低峰是24小時在變動;甚至若有特殊行銷檔期,玩家在同一時間大量湧入領獎勵,SRE團隊就要花更多時間在監測伺服器的運作狀態。

Gene Liu對此提到,「我們的後端服務部署於Google Kubernetes Engine之上,後端服務向BigQuery寫入資料是透過Pub/Sub,而Pub/Sub與BigQuery都是全代管的服務,可以大幅度减輕我們的工作負擔,不用手動擴展或縮減設定雲端服務所使用的資源,跟以前的維運工具相比,現在的管理模式可以節省非常多時間。」
另一方面,Gene Liu接著說,雷亞也在雲端環境架設資料視覺化網路應用程式平台Grafana,Grafana可以在網路瀏覽器內顯示資料圖表,並提供警告功能。因此一旦監測到數據峰值異常,就能立刻行動來最佳化産品的效能,或是有效排除伺服器原本不應浪費的成本。
「現在雲端服務的費用以raw data傳到BigQuery後,能透過Grafana即時檢視哪個專案的伺服器以及流量花多少錢,或發現花費異常時候,可以找到是哪個專案開的運算資源。以前要每個月收到帳單才知道費用,現在則是可以即時得知系統數據,並在數小時內掌握各項雲端服務的費用。」Gene Liu補充道。
期待以敏捷方式迭代產品,提供玩家即時又彈性服務
雷亞與Google Cloud的合作,除了上述相關應用,其他還包含Cloud Load Balancing、Compute Engine、Dataflow、Cloud Monitoring、Cloud Logging以及Google Workspace等解決方案,在其他業務及跨部門協作過程有廣泛運用。

Alvin Chung最後回應,「我們多年來觀察Google Cloud持續發布新功能,讓雷亞在做數據分析、維運上更穩定,也希望借力於雲端讓我們越來越省心,專注在遊戲的開發或加速迭代新的産品,更即時觀察市場的回應,進而縮短time to market的腳步。」
由此可見,雷亞遊戲在實現打造具時代回憶的偉大作品之際,藝術也要融合技術,除了讓玩家在遊戲過程感到幸福,同時也基於雲端應用,提供玩家快速又彈性的滿意服務。