金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網游開發(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 654006
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統C++網絡庫
asio 成為C++首選網絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11017)
2.?SVN中邪惡的replace(10939)
3.?VS2005編譯libevent(10404)
4.?混音算法的學習與研究(10184)
5.?C調用lua腳本的效率測試(9003)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優于指針(17)
5.?ACE與ASIO之間關于Socket編程的比較(16)
有難度的算法筆試題:芯片測試
有難度的算法筆試題
摘自:
http://community.csdn.net/Expert/TopicView3.asp?id=5764920
3)芯片測試:
有2k塊芯片,已知好芯片比壞芯片多。請設計算法從其中找出一片好芯片,說明你所用的比較次數上限。
其中:
好芯片和其它芯片比較時,能正確給出另一塊芯片是好還是壞。
壞芯片和其它芯片比較時,會隨機的給出好或是壞。
Vitin(衛亭)
(
):
試著回答一下第三題,不保證最快效率:
1.對N個芯片,在保證好芯片比壞芯片多的情況下,取出一塊芯片(為敘述方便,設為芯片X),與其他所有芯片做測試,記錄相互間的結果.
2.按照芯片X對其他芯片的結果,將其他芯片分成兩組:GOOD組和BAD組.
3.如果GOOD組的數目<BAD的數目,則X為壞芯片,跳到5.
4. 如果GOOD組的數目>=BAD組的數目,并且GOOD組對X的測試為good(認為X好芯片),則X確實是好芯片,算法結束(因為在N-1中,至 少半數的芯片認為X為不是壞芯片,考慮到"好芯片比壞芯片多",可歸謬證明);否則,只要有一個GOOD組芯片對X的測試為bad,則X為壞芯片,繼續.
5.X為壞芯片,故去除X,將所有芯片分成兩組:對X的測試為bad的保留,對X的測試為good的去除.考慮到所有的好芯片都保留了(它們對X的測試必為bad),所以仍然滿足"好芯片比壞芯片多"的條件.跳到1,繼續.
以上算法保證可以結束.因為如果測試出X是壞的,那么每次N至少減一.并且,因為"好芯片比壞芯片多",算法必定是在第4步結束.而不會出現芯片降到1的情況(只要初始的芯片數>=2)
題目中,初始N=2k.其復雜度在最壞的情況下測試次數(假設一次測試同時出現相互的結果,否則次數*2)為: k + (k+1) + ... + (2k-1) = 1/2 * k(3k-1) = O(k^2)
xlfddlfd(樓主請點我加分^_^不用客氣)
(
) :
下面兩個結論比較有用,先列出來。
任意拿兩片芯片互相測試,則有
1)結果都為真,則說明兩片都為真,或者都為假。
2)其他結果,則最少有一為假。
在任意偶數多的芯片里,如果好芯片多于壞芯片,將所有芯片兩兩分組,根據抽屜原理,則有
1)必有兩個好芯片分在一組。
2)同為好芯片的組數一定多于同為壞芯片的組數。
測試流程
1)將芯片兩兩分組,比如1和2,3和4。。。。2k-1和2k。互相測試,則必有結果同為真的組。
2)保留結果同為真的組,丟棄其他組。必有好芯片組多于壞芯片組。(所以當只有兩組或者一組同為真時,則必為真,測試結束)
3)結果同為真的組芯片必定同好或者同壞,所以可以丟棄一半。從所有同真組中任意取出一個丟棄另一個,組成新的測試組,繼續兩兩分組,直到同真組只有2個或者1個測試結束,堅持到最后的就是好芯片。
說 明:同真組可能會變成奇數個,當為奇數組時,任意選一組取其中一個(假設為A),在剩余組中各取一個來測試A,如果測試結果A為好芯片過半或者等于一半, 則A為好芯片,測試結束。否則A為壞芯片,判定A為好芯片的必為壞芯片,剔除后剩余部分形成新的測試組,繼續兩兩分組。。。
總的原理和淘 金差不多,剛開始好的芯片多,在每次剔除芯片時一定要保證剔除的壞芯片數量一定要多于或者等于好芯片的數量,這樣就能保證在剩余的芯片中好的一定多于壞 的。當組數為奇數時采用投票制,多于半數的投票有效(等于也有效,因為好的多于壞的,相等則被測試的一定為好的)。
因為每次最少剔除一半的芯片,所以最壞情況出現在每次只能剔除一半芯片的時候,按等比數列遞減。當有N個芯片時,測試次數為n+(n/2)+(n/4)...=2n(實際上當為奇數組時,次數會更多,不過算不過來了,省略^_^ )
Vitin(衛亭)
(
) :
xlfddlfd 的算法很好,學習一下.
這個算法比我之前的算法要快得多.
當 最壞情況是,每次都是奇數,并且每次都是壞芯片 時,測試次數(lg是以2為底的對數,N = 2k)約為 2(k + k/2 + k/4+...)-slgk = 4k - slgk = O(k),仍然是線性算法(此處的s為不大的常數(但大于1),因為在每次為奇數的情況下,實際的數目要比 k/2, k/4 之類的小,可以認為這個誤差是lgk的倍數,此外壞芯片的比較數是每次總個數-1,所以要減少大約一個lgk).
posted on 2007-09-24 15:01
金慶
閱讀(1945)
評論(0)
編輯
收藏
引用
所屬分類:
9. 其它
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
TortoiseGit is OK but GitExtensions fails
DeathVoteExpirationTimeout in Orleans
How to delete local branches of GitExtension
Clustering provider in Orleans
Why Orleans' actor is virutal
What comes after microservice?
Rust Deref coercion example
Rust Error Return Check Policy
Rust visibility
Why does Rust check borrow even in single thread
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
91精品国产综合久久四虎久久无码一级
|
久久国产精品波多野结衣AV
|
久久精品国产亚洲av影院
|
国产精品9999久久久久
|
国产精品欧美久久久久天天影视
|
久久精品国产亚洲Aⅴ蜜臀色欲
|
人妻无码αv中文字幕久久琪琪布
|
久久精品成人欧美大片
|
久久久久国产精品
|
国产欧美久久久精品影院
|
久久综合九色综合久99
|
思思久久好好热精品国产
|
狠狠色婷婷综合天天久久丁香
|
国产午夜电影久久
|
奇米综合四色77777久久
|
狠狠综合久久综合中文88
|
亚洲午夜久久久
|
久久被窝电影亚洲爽爽爽
|
久久无码国产专区精品
|
色综合久久久久网
|
男女久久久国产一区二区三区
|
久久93精品国产91久久综合
|
99精品国产在热久久无毒不卡
|
欧美综合天天夜夜久久
|
亚洲精品无码久久久久
|
人妻少妇精品久久
|
久久精品国产国产精品四凭
|
欧洲精品久久久av无码电影
|
久久婷婷色香五月综合激情
|
丁香五月综合久久激情
|
国产精品久久久久久久久
|
久久免费的精品国产V∧
|
亚洲精品tv久久久久久久久
|
中文成人久久久久影院免费观看
|
成人久久综合网
|
人人狠狠综合久久88成人
|
久久久久av无码免费网
|
99精品国产99久久久久久97
|
欧美精品福利视频一区二区三区久久久精品
|
中文国产成人精品久久不卡
|
色偷偷888欧美精品久久久
|