看板 [ Python ]
討論串[問題]比大小求最小值
共 4 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓1(1推 0噓 1→)留言2則,0人參與, 最新作者ck574b027 (荒圍!定厝!賊!妹!)時間12年前 (2013/11/06 03:31), 編輯資訊
0
0
0
內容預覽:
考慮到 M 一定不止一個,如果沒有其他條件的話,. 我想一個比較直觀但會有很多 if 的解法,不是漂亮的數學解。步驟只有兩個。. 第一步:. 把 L、U、N 以二進位表示並對齊,截出開頭 U 比 L 長的那部分,叫做 head。. 此時有兩種情況:. U 比較長:會產生長度為 len(U) - le
(還有433個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者kaichan (呈呈)時間12年前 (2013/11/05 22:28), 編輯資訊
0
0
1
內容預覽:
請參考 http://ideone.com/VhssDq. 直接用 bit 運算. 先算出 N 中不為 1 的 bit 遮罩 n_mask. EDIT:. 如果 n_mask 介於 L ~ U 之間,則 M = n_mask. 否則 從 L ~ U 中取 m 找出 m & n_mask 為最大的值.

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者darkgerm (黑駿)時間12年前 (2013/11/05 19:55), 編輯資訊
0
0
1
內容預覽:
要解的話最簡單就是 NM, M = max((i|N, i) for i in range(L+1,U)). 出來 NM 就是 N or M 值,M 即所求. 不過這樣複雜度是 O(U-L). 我想到一個 O(log(U)) 的解法. 以範例來說 U-L = 3366581 log(U) = 21.
(還有3215個字)

推噓2(2推 0噓 3→)留言5則,0人參與, 最新作者Anisno (Anisno)時間12年前 (2013/11/04 23:00), 編輯資訊
0
0
0
內容預覽:
我遇到一個問題,題目如下:給一個正整數,你必須找出遮罩M,滿足L<M<U且N or M. 運算後數字最大。. 假如. N=30951344. L=201310. U=3567891. 求M=___. 我的想法是把N、L、U皆轉成二進為表示法,再對齊. 試著使N or M起來皆是1。. 對齊我可以,但
首頁
上一頁
1
下一頁
尾頁