產品經理數學課(3)

關鍵詞:剩余,同余定理,數論,hash

參考:

楊迎球,中國剩余定理與同余式組,[D]安順學院數學與計算機科學系,2009.02.15

談數論中的同余及其應用,衡水師專學報[D],2002.03.1

同余理論的一些簡單應用,肇慶學院學報,2013.03.28

《程序員的數學課》——極客時間

百度百科

歷史

有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?——《孫子算經》卷下二十六

釋義:

有一堆東西不知道有多少數量。三件三件地數,就會剩下兩件;五件五件地數,剩下三件;七件七件地數,剩下兩件。問:這堆東西共有多少件??

解題如下:

條件:除3余2,除7余2,

公倍數=3*7=21

21*1+2=23

證:

23/5=4余3


日常應用:

今天星期5,30天后星期幾?

30/7余2

周五+2天=周日

那么問題來了!某個數盡除7,余數會大于或等于7嗎?

答案是當然不會!

故而我們提煉出:余數在除數的范圍內


同余定理

再思考一個問題:今天是本月1日,周日,本月30天,那么有幾個星期日呢?

每7天(加上本天基礎天1+7),是一個周循環

8、15、22、29

8/7余1

15/7余1

22/7余1

29/7余1

以上這種情況被前人歸納為,同余定理


哈希(Hash)

在現在“區塊鏈”泛濫的時代,你應該不陌生這種加密算法吧;

哈希本質是“將任意?度的輸入,通過哈希算法,壓縮為某一固定?度的輸出”

發現沒?和求余是一樣一樣的


比個喻:

問:有30W條數據,想快速讀寫,一個物理儲存空間放不下。怎么辦?

答:放多個物理空間

問:但數據是連續的,則需要對空間進行關聯

答:我們可以設計一個散列函數,并實現哈希表的結構

散列函數:本質就是個檢索和關聯;

f(x)=y mod size

在這個公式中,Y表示等待被轉換的數值,而size表示有限存儲空間的大小,mod表示取余操作。通過余數,你就能將任何數值,轉換為有限范圍內的一個數值,然后根據這個新的數值,來確定將數據存放在何處。

具像說明:

我們可以通過記錄標號模30的余數,指定某條數據存放在哪個空間。這個時候,我們的公式

就變成了這樣:

f(x)=y mod 30

然后我們就可以把 1、31、61、91、121這些數放在第1個空間中,以此類推,30、60、90、120…放在第30個空間中

這樣 我們就能在30的范圍內檢索出30w條數據。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容