看板 Math 關於我們 聯絡資訊
就套你的例子.只是把店名改成2的次方 舉例來說 : A去了1、2號,B去了3號,C去了1、4號 : 最簡單的紀錄方式是 : A:1100 : B:0010 : C:1001 1號記為1 2號記為2 3號記為4 4號記為8 5號記為16 ... A= 1+2=3 . B= 4 . C =1+8=9 .... 今天 D = 53 .你想知道他去那些店.就用短除法. http://imgur.com/a/zgYVd 53 = 1+4+16+32 再去還原嚕 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.152.96 ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1494527251.A.0AE.html
songhome : Sorry原文沒說清楚,因為系統沒有迴圈可以用 05/12 09:39
songhome : 所以要還原回去有點困難QQ 05/12 09:39
songhome : 不然這是一個好方法說 05/12 09:39
wohtp : ...不能做迴圈的計算機?這是什麼廢物? 05/12 09:57
songhome : 因為那套系統本身不是拿來計算用的@@ 而且寫死了 05/12 10:35
songhome : 也不能進去修改,只好另尋他路 05/12 10:35
Desperato : 那你可以更改一下方法 05/12 11:27
Desperato : 按照這個系統儲存去過的店 05/12 11:27
Desperato : 如果想知道他有沒有去過n號店 則 05/12 11:28
Desperato : (1) 除以2^(n-1) 取整數商 餘數丟掉 05/12 11:28
Desperato : (2) 是奇數就是去過 反之沒有 05/12 11:29
Desperato : 這樣就不需要迴圈了 05/12 11:29
Desperato : 由於n號店的加權就是2^(n-1) 這個應該是事先存好的 05/12 11:29
Desperato : 當然這樣沒辦法知道 除了n號店的資訊 05/12 11:30
songhome : !!! 感謝樓上,這方法可以達到我的需求 05/12 12:20
songhome : 確實只要知道n號店就可以了 謝謝!! 05/12 12:20
Sfly : 其實就是用 bitwise operator 05/12 17:52