前言
大家好,我是 夢想家 Alex ,在我技術群的小伙伴們都知道,我從今年 3月8日 開始,在技術群里發起了一個計劃 ,為了跟其他技術群有所區別,并且能調動得起大家的學習熱情,我成立了一個出題組,每天早上,我會讓管理員在技術群里的公告欄放上3道題目,分別是1道基礎題,1道思考題和1道智力題,所有的答案均為群友討論得出,后面為了讓題目更加豐富,我們還添加過演算法題,SQL題 , 一直積累到 8月份,這個日更計劃暫時停止,但是我們的題庫已經積攢了不少的題目,一開始我的想法是這個在線的知識庫只對我們技術群的朋友開放,但是后面想到可以 精選出好的問題開放給更多的朋友,一起參與學習和思考 ,于是我便想到了用文章來記錄的方式來打破壁壘,所以,我開設了“每日主題討論”專欄,想用有限的文章,為大家帶去更多的思考,本期文章,我為大家帶來的是一點輕松愉快的內容,那便是 常見的智力題集錦

題目
NO.1
一個大小為 N 的陣列,所有數都是不超過 N-1 的正整數,用O(N)的時間找出重復的那個數(假設只有一個),一個大小為 N 的陣列,所有數都是不超過 N+1 的正整數,用O(N)的時間找出沒有出現的那個數(假設只有一個),
NO.2
有一輛火車以每小時15公里的速度離開洛杉磯直奔紐約,另一輛火車以每小時20公里的速度從紐約開往洛杉磯,如果有一只鳥,以30公里每小時的速度和兩輛火車同時啟動,從洛杉磯出發,碰到另一輛車后回傳,依次在兩輛火車來回飛行,直到兩輛火車相遇,請問,這只小鳥飛行了多長距離?
NO.3
一個獵人帶著一只羊,一只狼和一顆白菜回家,路上遇到一條河,河邊只有一條船,但船太小,一次最多只能載獵人和另外一樣東西過河,但獵人不在時,狼要吃羊,羊要吃白菜,問怎樣才能把狼,羊,白菜安全運過河?
NO.4
有個商人雇用了一位手藝高超的工匠了為他做一個精致產品,作業一星期七天的代價是一條金條,商人手頭上有一條金條,剛好有可以付工匠一星期的工錢,但工匠要求工錢要按每天來付,雖然他并不急著用錢,每天有錢進賬,老人心里總是踏實一些,但商人家中有個規矩,金條每星期只能切二刀,后來商人想出以了個切割金條的辦法,滿足了工匠的要求,你知道商人是怎么切割金條才能滿足工匠的嗎?
NO.5
請找出規律:1,11,21,1211,111221,下一個數是什么?
NO.6
在房里有三盞燈,房外有三個開關,在房外看不見房內的情況,你只能進門一次,你用什么方法來區分那個開關控制那一盞燈?
NO.7
你有四個裝藥丸的罐子,每個藥丸都有一定的重量,被污染的藥丸是沒被污染的重量+1.只稱量一次,如何判斷哪個罐子的藥被污染了?
NO.8
30枚面值不全相同的硬幣擺成一排,甲、乙兩個人輪流選擇這排硬幣的其中一端,并取走最外邊的那枚硬幣,如果你先取硬幣,能保證得到的錢不會比對手少嗎?
NO.9
某種藥方要求非常嚴格,你每天需要同時服用A、B兩種藥片各一顆,不能多也不能少,這種藥非常貴,你不希望有任何一點的浪費,一天,你打開裝藥片A的藥瓶,倒出一粒藥片放在手心;然后打開另一個藥瓶,但不小心倒出了兩粒藥片,現在,你手心上有一顆藥片A,兩顆藥片B,并且你無法區別哪個是A,哪個是B,你如何才能嚴格遵循藥方服用藥片,并且不能有任何的浪費?
NO.10
有棟建筑物高100層,若從第N層或更高的樓層扔下來,雞蛋就會破掉,若從第N層以下的樓層扔下來則不會破掉,給你2個雞蛋,請找出N,并要求最差情況下扔雞蛋的次數為最少?
NO.11
有7克、2克砝碼各一個,天平一只,如何只用這些物品五次內將140克的鹽分成50、90克各一份?
NO.12
有20瓶藥丸,其中19瓶裝有1克/粒的藥丸,余下一瓶裝有1.1克/粒的藥丸,給你一臺稱重精準的天平,怎么找出比較重的那瓶藥丸?天平只能用一次,
NO.13
一個裝了10L水的桶,一個7L的空桶,一個3L的空桶,怎樣變成2個5L
NO.14
實驗室里有1000個一模一樣的瓶子,但是其中的一瓶有毒,可以用實驗室的小白鼠來測驗哪一瓶是毒藥,如果小白鼠喝掉毒藥的話,會在一個星期的時候死去,其他瓶子里的藥水沒有任何副作用,請問最少用多少只小白鼠可以在一個星期以內查出哪瓶是毒藥
NO.15
有兩根不均勻分布的香,香燒完的時間是一個小時,你能用什么方法來確定一段15分鐘的時間 ,
NO.16
島上有 100 個囚犯,他們都是藍眼睛,但是他們都只能看到別人眼睛的顏色, 并不能知道自己的眼睛顏色,而且他們之間不能去談論眼睛顏色的話題,規定每天晚上都可 以有一個人去找守衛說出自己的眼睛顏色,如果錯了被殺死,如果對了被釋放,但是大家在 沒有十足的把握前都不敢去找守衛,有一天,一個醫生對他們說你們之中至少有一個藍眼睛, 然后 N 天,這些人都獲救了,為什么?這句話對他們有什么影響 ?
NO.17
54張撲克牌,其中有十張是翻過來的,現在把你的眼睛蒙上,讓你把撲克牌分成兩疊(兩疊的多少可以不一樣),要求在兩疊中翻過來的撲克牌是相等的,請問該怎么做?
NO18.
古時候有一位商人要讓伙計將一個精致的花瓶送到買主的手里,買主住在很遠的地方,路途中間要經過土匪出沒的地方,土匪要是見到花瓶就會搶走,但土匪不會打開鎖著的東西,只要把花瓶鎖在箱子里就可以安全地送到目的地(這土匪看起來還很文明),所以商人準備了一個大箱子,在箱子上裝了個很大很結實的的鎖扣,足以掛幾把鎖,商人還準備了一把精致的鐵鎖將花瓶鎖在箱子里,這把鐵鎖的鑰匙是獨一無二的,沒有這把鑰匙,按照當時的技術箱子是絕對打不開的,但問題來了,土匪只要見到鑰匙就會沒收,鑰匙都是沒法安全地送到買主的手里的,買主也不能把自己的鎖送給賣主用,在幾經周折后,買主終于得到了他心愛的花瓶,請問這花瓶是如何送到買主的手里的?
NO.19
假設在桌上有三個密封的盒,一個盒中有2枚銀幣(1銀幣=10便士),一個盒中有2枚鎳幣(1鎳幣=5便士),還有一個盒中有1枚銀幣和1枚鎳幣,這些盒子被標上10便士、 15便士和20便士,但每個標簽都是錯誤的,允許你從一個盒中拿出1枚硬幣放在盒前,看到這枚硬幣,你能否說出每個盒內裝的東西呢?
NO.20
有50家人家,每家一條狗,有一天警察通知,50條狗當中有病狗,行為和正常狗不一樣,每人只能通過觀察別人家的狗來判斷自己家的狗是否生病,而不能看自己家的狗,如果判斷出自己家的狗病了,就必須當天一槍打死自己家的狗,結果,第一天沒有,第二天沒有,第三天開始一陣槍響,問:一共死了幾條狗?
NO.21
有兩位盲人,他們都各自買了兩對黑襪和兩對白襪,八對襪子的布質、大小完全相同,而每對襪子都有一張商標紙連著,兩位盲人不小心將八對襪子混在一起,他們每人怎樣才能取回黑襪和白襪各兩對呢?
NO.22
走廊上有100個關上的儲物柜,有個人先是將100個柜子全都打開,接著,每數兩個柜子關上一個,然后,在第三輪時,再每隔兩個就切換第三個柜子的開關狀態(也就是將關上的柜子打開,將打開的關上),照此規律反復操作100次,在第 i 輪,這個人會每數 i 個就切換第 i 個柜子的狀態,當第100 輪經過走廊時,只切換第100個柜子的開關狀態,此時有幾個柜子是開著的 ?
OK,以上就是我從技術群題庫里精選出來關于智力題的集錦,不知道大家能回答上來幾道題呢~
接下來,我就要揭秘答案了

答案
NO1.
計算陣列中的所有數的和,再計算出從1 到 N-1 的所有數的和,兩者之差即為重復的那個數,計算陣列中的所有數的和,再計算出從1到 N+1的所有數的和,兩者之差即為缺少的那個數,
NO2.
不用考慮小鳥掉頭的情況
實際飛行距離 = 兩車相遇時間間隔 * 小鳥飛行速度
假設兩地相距的距離為 x,那么兩車相遇的時間間隔為
x ( 15 + 20 ) \frac{x}{(15+20)} (15+20)x?
小鳥飛行的距離為 數學公式: $ \frac{x}{(15+20)} * 30 $ ,也就是
6 x 7 \frac{6x}{7} 76x?
NO3.
第一次過河,帶羊;
回來;
第二次過河,帶狼;
帶羊回來;
第三次過河,帶白菜;
回來;
第四次過河,帶羊
NO4.
切兩刀,
1,2,4三段
第一天給1,
第二天給2要回1,
第三天給1+2,
第四天給4,要回1+2
…
NO5.
奇數位: 表示數字的個數,
偶數位: 表示數字
1
11:代表上個數字1個1
21:代表上個數字2個1
1211:代表上個數字1個2,1個1
111221:代表上個數字是1個1,1個2,2個1,
所以下個數字應該是:
312211
NO6.
先在門外開啟一個開關,讓燈亮一會兒,再關閉,接著再開啟一個開關,讓燈一直亮著,進入房門,亮著的燈的開關知道了,然后再用手摸一下,那個燈泡是熱的,就知道另外一個開關,最后就是最后一個開關了,
NO7.
設未被污染的每個藥丸的重量是x,則被污染的每個藥丸的重量是x+1,將4個罐子分別標注為1、2、3、4,取一號罐子1個藥丸,二號罐子2個藥丸,三號罐子3個藥丸,四號罐子4個藥丸,一起稱重,則:
若一號罐子藥丸被污染,則重量為(10x+1)
若二號罐子藥丸被污染,則重量為(10x+2)
若三號罐子藥丸被污染,則重量為(10x+3)
若四號罐子藥丸被污染,則重量為(10x+4)
結論:不論哪種情況,我們只需要對10取模,即可得到結果
NO8.
取者可以讓自己總是取奇數位置上的硬幣或者總是取偶數位置上的硬幣,數一數是奇數位置上的面值總和多還是偶數位置上的面值總和多,然后總是取這些位置上的硬幣就可以了,
NO9.
把三顆藥丸都分成兩半,從每一顆都拿一半出來分成兩份,這樣每份就包含一顆B和半顆A,然后再去A藥片里面拿一顆分成兩半放入剛分好的兩份中就可以滿足題意
NO10.
①假設最壞情況下得到的下落次數為x,那么第一枚雞蛋從哪層扔好呢,顯然是x,因為這樣如果在第x層碎了,那么第二枚雞蛋需要x-1次確定N,加上第一枚的一次,就是x次,那假如沒碎呢,第二次我又從哪層扔呢,自然是x+(x-1)層,因為這樣如果第一枚在這層碎了,那第二枚就需要x-2次確定N,總共是x-2+2=x次,以此類推,而總共又只有100層,得到一個不等式x+(x-1)+(x-2)+…+1 >= 100解得x=14
②動態規劃:
當第一個雞蛋從第x層扔時,用(k,n)表示狀態,其中 k 為雞蛋數,n 為樓層數
- 如果雞蛋不碎,那么狀態變成 (k, n-x),即我們雞蛋的數目不變,但答案只可能在上方的 n-x層樓了,原問題縮小成了一個規模為 (k, n-x) 的子問題
- 如果雞蛋碎了,那么狀態變成 (k-1, x-1),即我們少了一個雞蛋,但我們知道答案只可能在第 x 樓下方的 x-1層樓中了,原問題縮小成了一個規模為 (k-1, x-1) 的子問題
NO11.
最佳解法:
①把140g鹽均分得到兩份70g
②7g+2g砝碼與70g鹽-> 9g鹽和61g鹽
③9g鹽+2g砝碼與61g鹽->50g鹽,
NO12.
首先給藥瓶編號1至20,然后對應取出編號數量的藥丸稱重,
如果所有藥瓶都是1克,那最后總重量應該是1+2+…+20=210克,根據題意,最后重量m肯定肯定大于210克,而多出來的重量一定是出自1. 1克的那瓶,于是用m減去210,再除以1. 1-1=0. 1就可以得到對應1. 1克那瓶的編號
NO13.
| 程序 | 10L(A) | 7L(B) | 3L(C) |
|---|---|---|---|
| 初始 | 10 | 0 | 0 |
| A->B->C | 3 | 4 | 3 |
| C->A | 6 | 4 | 0 |
| B->C | 6 | 1 | 3 |
| C->A | 9 | 1 | 0 |
| B->C | 9 | 0 | 1 |
| A->B | 2 | 7 | 1 |
| B->C | 2 | 5 | 3 |
| C->A | 5 | 5 | 0 |
NO14.
首先給1000瓶子按10位二進制編號,然后最右位為1的瓶子喂給1號老鼠,右起第二位是1的瓶子喂給2號老鼠…
這樣根據最后老鼠的狀態就可以確定對應位上的數字,比如說1號老鼠死亡,那么確定毒藥瓶的編號最右位是1,2號老鼠存活,毒藥瓶右起第2位是0… 從而確定毒藥瓶的編號
NO15.
先同步把一根香的兩端都點燃,另外一根香的一端也點燃,等到第一根香燃燒完,再同步把第2根香的另外一端點燃,此時第2根燃完就為15分鐘
NO16.
如果只有一個藍眼人,那么他原本看不到藍眼人,聽到醫生的話,就知道了醫生說的藍眼人就是自己,因此他在當天晚上找守衛說自己是藍眼睛,
由此可以推出,如果有兩個藍眼人,那么他們原本都只看到一個藍眼人,聽到醫生的話,都會想:對方是不是島上唯一的藍眼人?如果是的話,那么一天后他應該發現對方已經被釋放,但過了一天沒人被釋放,因此兩人都明白了,對方沒被釋放是因為島上還有一個藍眼人,就是自己,因此,在醫生講話的第二天晚上,這兩人會一起被釋放,
這是個遞回邏輯,各位想想,如果有三個藍眼睛,那第二天當晚這三個藍眼睛就同時被釋放,
如果是四個藍眼睛,那第三天當晚這四個藍眼睛就同時被釋放,
依次類推,100個藍眼睛,第99天當晚全部被釋放,
NO17.
- 分兩組,A組 44 張,B組 10 張
- 反轉B組所有牌
假設翻轉后的 10 張中隨機分到B組的是 x 張,那么A組就是10-x 張,B組總共10張,那么將B組再次翻轉后也是10-x 張,相等
NO18.
商人加一把鎖,鑰匙自己留著,伙計把箱子送給買主,買主收到箱子,再加一把自己的鎖,鑰匙自己留著,然后,伙計把箱子再送給商人,商人把自己的鎖打開,伙計最后再把箱子送給買主,買主打開自己的鎖就可以得到花瓶了,
這種思想也是多方安全計算里面雙向隨機加密常用到的方法,
NO19.
現在有3個盒子,分別裝有如下物品,以及對應的價值如下:
a 兩枚銀幣 價值:20
b 兩枚鎳幣 價值:10
c 一枚銀幣一枚鎳幣 價值: 15
我們只需要從 c 盒子中拿,如果出現銀幣,根據題意,說明它的標簽是2枚銀幣,剩下的互換,盒子寫10便士的是a,寫15便士的是b
NO20.
死了3條(第幾天槍響就有幾條),
從有一條不正常的狗開始,顯然第一天將會聽到一聲槍響,這里的要點是你只需站在那條不正常狗的主人的角度考慮,
有兩條的話思路繼續,只考慮有兩條不正常狗的人,其余人無需考慮,通過第一天他們了解了對方的資訊,第二天殺死自己的狗,換句話說每個人需要一天的時間證明自己的狗是正常的,有三條的話,同樣只考慮那三個人,其中每一個人需要兩天的時間證明自己的狗是正常的狗,
NO21.
如果讓盲人成對的去拿,不能保證剛好拿的是兩對黑和兩對白,正確分法是:
把襪子拆開,每人隨便拿一只,注意要每拆一對,兩人就要分一次,這樣就能保證每人拿到4只黑襪,4只白襪,
NO22.
要解決這個問題,我們必須弄清楚所謂切換儲物柜開關狀態是什么意思,這有助于我們推斷最終哪些柜子是開著的,
- 問題:柜子會在哪幾輪切換狀態(開或關)?
柜子n會在n的每個因子(包括1和n本身)對應的那一輪切換狀態,也就是說,柜子15會在第1、3、5和15輪開或關一次,(i=1開,3關,5開,15關,因子個數:偶數關,奇數開)- 問題:柜子什么時候還是開著的?
如果因子個數(記作x)為奇數,則這個柜子是開著的,你可以把一對因子比作開和關,若還剩一個因子,則柜子就是開著的,- 問題:x什么時候為奇數?
若n為完全平方數,則x的值為奇數,理由如下:將n的兩個互補因子配對,例如,如n為36,則因子配對情況為:(1, 36)、(2, 18)、(3, 12)、(4, 9)、(6, 6),注意,(6, 6)其實只有一個因子,因此n的因子個數為奇數,- 問題:有多少個完全平方數?
一共有10個完全平方數,你可以數一數(1、4、9、16、25、36、49、64、81、100),或者,直接列出1到10的平方:
1 * 1, 2 * 2, 3 * 3, …, 10 * 10
因此,最后共有10個柜子是開著的
小結
實際上這只是我整理的知識庫中的一小部分內容,后續我也會將更多精彩的主題集錦發布出來,期待大家可以多多關注,來個一鍵三連就更好了~ 另外,我也是一枚喜歡閱讀,輸出,復盤的大資料愛好者,熱衷于分享大資料基礎原理,技術實戰,架構設計與原型實作之外,還喜歡輸出一些有趣實用的編程干貨內容,與閱讀心得 … 如果感興趣我整理的干貨內容,可以關注下方我的公眾號卡片「大資料夢想家」,相信一定會有你想要找尋的寶藏~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/300700.html
標籤:其他
上一篇:新云服務軟體配置
