質數一個很重要的特點:`除了1和它自身外,不能被其他自然數整除`
擴展
(1)質數m, n相乘得到s的話,s便不再是質數,但是其因數也是唯一確定,即:1, s, m, n
(2)質數集合S => {a0, a1, ..., an} 中任意個不同的質數相乘得s,如果n是一個質數,且n是s的因數,則s可以被n整除。
自然數的前100個質數爲:
2
3
5
7
11
13
17
...
523
541
應用場景
背景:一塊完整的圖像被拆散成若干個碎片,而集合中又有若干個這樣的圖像被拆散。給你一塊碎片,確定它屬於哪一個圖像。
使用質數實現該場景時,可能存在的問題:
(1)質數個數不可能"無限擴展"(雖然質數是無限個)
(2)目前整數所能表示的範圍有限
(3)碎片可能是僞造的
方案
用id標識每一張圖像;所有圖像共用一個質數列表(無規則),並且各個圖像維護一個指針,指針指向列表中的質數(給碎片分配質數);使用一種對稱加密算法,將分配給碎片的質數進行加密,且每一張圖像的密鑰儘可能不同;使用一種散列算法將碎片信息進行加密,確保碎片信息唯一真實。
擴展
如果整數能夠表示的範圍無限大並且計算機底層運算支持,而且我們獲悉了無限的質數集合。當再次判斷一個元素是否在集合中時,目前使用的通過查詢的手段可能將會被"通過計算"代替(盲目猜測 > __ <)。