給定閾值T和一組位圖的狀況,我想創建一個結果位圖「BR」,使得「BR」第i個比特被設置爲1僅在I」 > = T位圖中th位設置爲1。邏輯與運算符與
我會嘗試用一個例子,我的問題: 讓我們假設我們有4位圖(相等長度的)和T = 3:
b1 (10000)
b2 (01110)
b3 (10110)
b4 (00010)
然後我得到的位圖BR =(00010 ) - 因爲在> = 3位圖中只有第4位被設置爲1。如果T = 2,則br =(10110)。
一種簡單的方式來做到這一點是通過每個位迭代,並保持存儲位的計數向量「我」在第i個指標。之後,可以迭代這個「計數」向量。
的另一種方式(我認爲)是實施的變形邏輯AND運算符,使得在結果位圖中,如果在> = T的位置設置爲1的第i個比特被設置爲1。
是否有任何其他有效的方式來做到這一點?我正在使用C++和EWAHBoolArray(https://github.com/lemire/EWAHBoolArray)庫。目前,他們沒有能力在多個位圖之間進行AND操作。 任何迴應非常感謝!
你可以有幾個位圖d,使得Dj的位圖B(即總和的第j位,DJ的第i位是二進制數的第j位,其是位圖的數目(集合B)在位置i)處具有1。在你的例子中,他們將是{(01010)(10110)(00000)}。 – Beta
一個可怕的問題,請閱讀[MCVE]。 –