記得在吳軍的《數學之美》中有一章講到布爾代數和搜尋引擎的索引。大概是講通過一個二進制字元串來辨別目前關鍵詞在那些文檔中出現過。二進制字元串中1的位置就是出現這個詞文檔的id。
如,一淘 對應一個二進制字元串 1010001。其中在1,5,7三個位置出現了1,說明文檔id為1,5,7的文章包含詞“一淘”。但是在書中沒有說如何統計1的個數和位置。現在我補充以下實作算法。
代碼如下:
輸出結果:
the number of 1 is 6
the position is
2
5
9
10
11
14