位運算解決多標籤問題 原創

2022-02-02 03:25:54 字數 1122 閱讀 1362

日常開發中經常用到乙個酒店下有多個標籤比如酒店的風格特點有:無柱場地方正豪華美食自然採光園林草坪溫泉景區周邊水景泳池中式院落西式裝修少數民族會場進車高爾夫

我們一般都會對其進行編號:

存放在資料庫時主要是存放該值的key值,如果乙個酒店只有乙個標籤是沒什麼問題的,但是如果乙個酒店有多個標籤,並且又需要支援單個標籤也可以篩選出該酒店就需要用到位運算,那具體這個位運算怎麼設計呢?需要我們一起看看。

我們假設某個酒店存在無柱美食泳池三個標籤

這樣我們可以設計乙個長度為15的二進位制數,滿足條件的位為1,不滿足的為0,那該酒店的二進位制數為000001000001001

轉換為十進位制為521

這樣我們存放到資料庫裡面的數值為521

那這樣怎麼獲取該酒店是否有該標籤呢?

我們可以採用位運算的與(&)運算:兩個位都為1時,結果才為1

那如果我們要判斷無柱這個標籤是否存在該酒店

首先獲取代表無柱的二進位制數000000000000001

然後轉換成10進製為1,

最後我們可以通過tags & 1來判斷該酒店是否有無柱這個標籤。

資料庫查詢語句為:

select * from hotel_info where (tags & 1);

select * from hotel_info where (tags & 4);

select * from hotel_info where (tags & 10);

好了,今天的分享就到這裡,明天見

利用位運算解決組合問題

求n個資料的組合 由數學知識,可以知道一共有2n個子集 用二進位制進行對照會非常直觀 子集空集 a1a0 a1 a0 a2a2,a0 a2,a1 a0,a1,a2 二進位制數 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 給出n個資料,問從這n個資料...

位運算解決N 皇后問題

描述 位運算是定義在整數上的運算。但在做位運算的時候,並不把整數看作整數,而是將它們看做一系列二進位制數字,逐位進行運算。位運算有6種,他們的名稱,運算子及運算規則如下 與 and 5 6 4 101 110 100 或 or 5 6 7 101 110 111 異或 xor 5 6 3 101 1...

多標籤分類問題

多類分類與多標籤分類 深度學習 多標籤分類問題 深度學習,opencv3 mxnet等影象處理相關的demo 深度學習模型處理多標籤 multi label 分類任務 好,介紹了整個處理流程 多標籤 multi label 分類任務 和 多分類 multi class 任務的區別 這裡筆者強調一下多...