金慶的專欄
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)
相冊
公告照片
搜索
積分與排名
積分 - 656584
排名 - 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" 錯誤(11032)
2.?SVN中邪惡的replace(10955)
3.?VS2005編譯libevent(10413)
4.?混音算法的學習與研究(10203)
5.?C調用lua腳本的效率測試(9007)
評論排行榜
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?;ハ鄿y試,則必有結果同為真的組。
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
金慶
閱讀(1950)
評論(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 © 金慶
久久精品免费一区二区
|
88久久精品无码一区二区毛片
|
MM131亚洲国产美女久久
|
午夜精品久久久久久
|
国产日韩欧美久久
|
国产成人久久精品麻豆一区
|
久久91亚洲人成电影网站
|
7777精品久久久大香线蕉
|
久久精品亚洲一区二区三区浴池
|
麻豆精品久久精品色综合
|
亚洲精品乱码久久久久久
|
久久无码人妻一区二区三区午夜
|
中文字幕热久久久久久久
|
奇米影视7777久久精品
|
亚洲精品国产成人99久久
|
亚洲中文字幕伊人久久无码
|
国产精品久久久久久搜索
|
武侠古典久久婷婷狼人伊人
|
精品久久久久久中文字幕人妻最新
|
国内精品伊人久久久久
|
九九久久99综合一区二区
|
嫩草影院久久99
|
丰满少妇人妻久久久久久
|
久久免费线看线看
|
亚洲精品第一综合99久久
|
国产精品久久久久久久app
|
无码AV波多野结衣久久
|
久久国产精品国产自线拍免费
|
久久亚洲中文字幕精品一区
|
伊人色综合久久天天人手人婷
|
天天综合久久久网
|
波多野结衣久久
|
97久久精品人人做人人爽
|
蜜臀久久99精品久久久久久小说
|
婷婷久久香蕉五月综合加勒比
|
国内精品人妻无码久久久影院
|
色偷偷88欧美精品久久久
|
伊人久久综在合线亚洲2019
|
国内精品久久久久影院亚洲
|
久久线看观看精品香蕉国产
|
国产综合久久久久久鬼色
|