我正在努力尋找一個相當典型的調度應用程序的好數據表示。有些混亂的要求是每個人每天都有一個隨意的可用性,並且在固定時間有或多或少的課程(儘管這裏也可能出現例外情況),而不管是否有兩方在那個時候可用或不可用。按位運算符進行過濾?
隨着挑戰之後的挑戰之一是尋找可用的預定課程的提供者,我想知道一個快速和優雅的方式是否可以簡單地將這些每週可用模式存儲在64位整數中的位掩碼。我的理由是,基本上,每天有24小時(10分鐘),每天有144個插槽(遠遠少於2^8)。因此,每個人每天都可以得到一個每天都是8位可用性掩碼的日程表(7 x 8位= 56位,小於64位整數)。
潛在用戶的過濾和識別可以通過將任何潛在的約會轉換爲相同類型的掩碼,然後只是按位操作來選擇在那裏可用的候選者而不會打擾進一步的規則等來完成。
我在想什麼是什麼原因是爲什麼我沒有看到更多的過濾發生在位級,因爲它似乎是相當直接的,我猜有希望實際上甚至最終會變得更優雅一個更詳細和明確的邏輯,任何想法/想法?
Uhm不會144個插槽是144位掩碼,1個位用來指示每個插槽是否可用?在一個8位數字中,你只能說,用戶可以在第100個插槽中使用10分鐘。您可以使用8位掩碼,但每個工作日在「正常」8小時工作日內可用。但不是在144個插槽。但如果我錯了,請糾正我。 – EWit
好點,我覺得非常愚蠢,因爲錯過了;-)事實上,在這種情況下,即使是8位掩碼也許就足夠了。總的來說,我對使用這種掩膜進行快速過濾頗感興趣,而且我還沒有真正看到過在我看過的任何Web項目中都做過這樣的事情,所以我想知道原因是什麼(或者如果我是隻是看着錯誤的項目...)所以原來的問題仍然與我有很高的相關性...... – Jonas