邏輯思維題一 條件組合覆蓋

2021-08-14 05:47:28 字數 1228 閱讀 5331

我們知道軟體測試對測試人員的邏輯思維要求比較高,而且筆試時經常會出一些邏輯思維方面的問題,今天我們來看乙個問題。

題目是這樣的:八瓶酒一瓶有毒,用人測試。每次測試結果8小時後才會得出,而你只有8個小時的時間。問最少需要____人測試?

遇到這樣的問題我們應該怎麼處理呢?看題目感覺比較抽象,我們可以對此進行轉化為條件組合覆蓋測試方法。

首先可以對八瓶酒進行編號:a,b,c,d,e,f,g,h;

有毒的酒可以當成乙個bug;

測試結果8小時後才會得出,而你只有8個小時的時間。對於這個條件我們應該轉換一下思路:乙個人其實可以同時喝多瓶酒,所以可以將每個人喝的酒看成乙個集合;需要多少人,可以看成最少測試幾個集合的組合可以完全覆蓋a~h。

我們再想一下,這個題目已經告訴我們了,有乙個bug,所以我們可以只要覆蓋a~g,7個字母。

所以這個題目可以轉化為:最少設計多少集合組合測試能夠完全覆蓋a~h 8個字母,我們可以假設集合順序從a到h,最少集合為n個。

所以組合條件可以是:集合1,集合2,集合3....,集合n;集合1+集合2,集合2+集合3,集合3+集合n....,集合n+1;集合1+集合2+集合3,....

最終演變為n+n+n+1=n(n-1)+1,如果要覆蓋完全a~g 7個字母,必須是n(n-1)+1>=7,計算得到最小正整數n=3。這個也是此題目的答案,最少需要3個人測試。每個人喝3瓶酒,有好多組合,但集合必須滿足集合組合之間有相同的酒,以下給出乙個組合:

分析:如果3人都出現中毒,則a酒有毒;如果3人都沒中毒,則h酒有毒;

如果第一人中毒,則d酒有毒;

如果第二人中毒,則

f酒有毒;如果第三人中毒,則g酒有毒;

如果第一,二人中毒,第三人沒中毒,則b酒有毒;如果第一,三人中毒,第二人沒中毒,則c酒有毒;

如果第二,三人有問題,第一人沒問題,則e酒

有毒。

總結:遇到這種問題,直接通過公式n(n-1)+1>=酒數量-1計算出n的最小正整數,就是需要的最少人數。每個集合的數量=酒數量-1-n,

而且遇到類似問題,可以通過這種條件組合思路去解決問題。

如果此題目換乙個問法:八瓶酒,大量檢測表明,有可能有一瓶酒有問題,為了檢測是否有一瓶酒有毒,用人測試。每次測試結果8小時後才會得出,而你只有8個小時的時間。問最少需要____人測試?

邏輯思維題

一 你讓工人為你工作 天,給工人的回報是一根金條。金條平分成相連的 段,你必須在每天結束時給他們一段金條,如果只許你兩次把金條弄斷,你如何給你的工人付費?兩次弄斷就應分成三份,我把金條分成 和 三份 這樣 第一天,給1 7 第二天,給2 7,找回1 7 第三天,給1 7,加上之前的2 7就是3 7了...

邏輯思維題(1)

下列描述中,唯一錯誤的是?a.本題有五個選項是正確的 b.b正確 c.d正確 d.def都正確 e.abc中有乙個錯誤 f.如果abcde都正確,那麼f也正確 還是用排除法和假設法吧!a.總共6個選項,有乙個選項是錯誤的,那麼肯定有五個選項是正確的,所以a正確 b.如果b正確,那麼e錯誤,先放著 c...

邏輯思維題整理

面對著兩道分別由兩個人守護的門,一道生門和一道死門,這兩個人的其中乙個只會說真話,而另乙個只會說假話。但是守護的人都知道,哪一道門是生門。現在只可以問這兩個人同乙個問題,然後判斷出那道是生門,那道是死門。那麼這個問題應該怎麼問才好?答 問其它乙個守衛 如果你是他的話,請你給我指明那個是生門,最終不論...