1. 程式人生 > >一些智力題

一些智力題

目錄

玻璃球與樓層

燒香

撞球

小白鼠試毒

水壺裝水

12枚硬幣


玻璃球與樓層

題目:有一棟100層高的大樓,給你兩個完全相同的玻璃球。假設從某一層開始,丟下玻璃球會摔碎。那麼怎麼利用手中的兩個球,用什麼最優策略知道這個臨界的層是第幾層??

答:https://blog.csdn.net/coolws123/article/details/22998879

假設問題存在最優解,這個最優解的最壞情況嘗試次數是x次

那麼第一次時我們就得從第x層開始,因為

  1. 若從x+1層扔後碎了,後面還需要嘗試x次,總次數x+1,不符合
  2. 若從x-1層扔後碎了,後面需要x-2次,總次數x-1,不符合
  3. 若就從x層扔後碎了,後面需要x-1次,總次數x次,符合

若第一次扔後沒碎,那麼問題變成在100-x層樓往下扔,要求嘗試次數不得超過x-1次,由於最壞嘗試次數變成了x-1,那麼第二次嘗試的樓層跨度變成x-1層,理由同上,同理若沒碎,則第三次x-2……

則當前樓層數為:x層->x+x-1層->x+x-1+x-2層

因此可以列出方程式:x+(x-1)+(x-2)+…+1=100  ---àx=14

左邊的多項式是各次扔雞蛋的樓層跨度之和。由於假設嘗試x次,所以這個多項式共有x項,右邊是總的樓層數100。

 

 

由此題引申的M層樓,N個雞蛋問題呢?(動態規劃)

最優解的最壞情況下嘗試次數是 X,雞蛋首次扔出的樓層也是 這個規律不再成立。

可以把M層樓 / N個雞蛋的問題轉化成一個函式 F(M,N),其中樓層數M和雞蛋數N是函式的兩個引數,而函式的值則是最優解的最大嘗試次數。

https://mp.weixin.qq.com/s/ncrvbpiZauXAGnUZTh5qtA

 

 

 

 

燒香

題目:有兩根粗細均勻的香(燒香拜佛的香),每一根燒完都花一個小時,怎麼樣能夠得到15min,45分鐘呢?

答:把一根香在中間和兩頭都點燃,用15分鐘,接著把另一根從中間點燃或者兩頭點燃用30分鐘,加起來就是45分鐘

 

撞球

題目:假定你有8個撞球,其中有1個球比其他的球稍重,如果只能利用天平來斷定哪一個球重,要找到較重的球,要稱幾次?(2次);

答:兩次,先3對3稱一下,在重的裡面1對1稱一下即可,如果3對3一樣重,在剩下的兩個中

 

 

小白鼠試毒

題目:實驗室裡有1000個一模一樣的瓶子,但是其中的一瓶有毒。可以用實驗室的小白鼠來測試哪一瓶是毒藥。如果小白鼠喝掉毒藥的話,會在一個星期的時候死去,其他瓶子裡的藥水沒有任何副作用。請問最少用多少隻小白鼠可以在一個星期以內查出哪瓶是毒藥;(答案是10只)

答:把瓶子從 0 到 999 依次編號,然後全部轉換為 10 位二進位制數。讓第一隻老鼠喝掉所有二進位制數右起第一位是 1 的瓶子,讓第二隻老鼠喝掉所有二進位制數右起第二位是 1 的瓶子,等等。一星期後,如果第一隻老鼠死了,就知道毒藥瓶子的二進位制編號中,右起第一位是 1 ;如果第二隻老鼠沒死,就知道毒藥瓶子的二進位制編號中,右起第二位是 0 ⋯⋯每隻老鼠的死活都能確定出 10 位二進位制數的其中一位,由此便可知道毒藥瓶子的編號了。

 

 

水壺裝水

問題:假設有一個池塘,裡面有無窮多的水。現有2個空水壺,容積分別為5升和6升。問題是如何只用這2個水壺從池塘裡取得3升的水;

答:6升的桶裝滿倒5升的桶,剩下1升,然後5升的倒掉,1升倒入5升,6升再裝滿倒入5升桶,剩下2升,5升桶倒掉再把2升裝進5升桶,6升桶再裝滿倒入5升,最後6升桶剩下3升

 

 

12枚硬幣