問題:1000瓶水,1瓶有毒。老鼠喝毒水24小時後死亡。現有10只老鼠,如何在1天內確定哪瓶是毒水?
2^10 = 1024 > 1000 → 10只老鼠的生/死狀態可編碼1024種情況,足夠覆蓋1000瓶水。
0000000001) → 第1只喝0000000010) → 第2只喝0000000011) → 第1、2只喝0000000100) → 第3只喝1111101000) → 第4、6、7、8、9、10只喝若第13瓶是毒水(二進制0000001101)→ 第1、3、4只老鼠喝了毒水 → 24小時後這3只死,其餘活 → 讀取二進制0000001101 = 13 → 精準定位。
這是非自適應分組測試的經典應用:
• 每只老鼠 = 1 bit信息
• 10 bit可區分1024種可能
• 一次性並行測試,時間最優(1天)
這道題考察信息論思維與二進制編碼靈活運用,是面試中極具區分度的經典好題。