## 智力邏輯
**1**
五個海盜搶到了100顆寶石,每一顆都一樣大小和價值連城。他們決定這么分: 抽簽決定自己的號碼(1、2、3、4、5)
首先,由1號提出分配方案,然后大家表決,當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔進大海喂鯊魚
如果1號死后,再由2號提出分配方案,然后剩下的4人進行表決,當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔入大海喂鯊魚,依此類推。
條件:每個海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。
問題:第一個海盜提出怎樣的分配方案才能使自己的收益最大化?
**2**
用天平(只能比較,不能稱重)從一堆小球中找出其中唯一一個較輕的,使用x次天平,最多可以從y個小球中找出較輕的那個,求y與x的關系式。
**3**
有12個小球,外形相同,其中一個小球的質量與其他11個不同,給一個天平,問如何用3次把這個小球找出來,并且求出這個小球是比其他的輕還是重。
**4**
13個球一個天平,現知道只有一個和其它的重量不同,問怎樣稱才能用三次就找到那個球?
**5**
有一根27厘米的細木桿,在第3厘米、7厘米、11厘米、17厘米、23厘米這五個位置上各有一只螞蟻。木桿很細,不能同時通過一只螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會后退。當任意兩只螞蟻碰頭時,兩只螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一厘米的距離。
**6**
有8瓶水,其中有一瓶有毒,最少嘗試幾次可以找出來。
**7**
五只猴子分桃。半夜,第一只猴子先起來,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一個,拿走了一堆; 第二只猴子起來一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一個。于是,它也吃掉了一個,拿走了一堆;.....其他幾只猴子也都是這樣分的。問:這堆桃至少有多少個?
分析:先給這堆桃子加上4個,設此時共有X個桃子,最后剩下a個桃子:
- 第一只猴子分完后還剩:(1-1/5)X=(4/5)X;
- 第二只猴子分完后還剩:(1-1/5)2X;
- 第三只猴子分完后還剩:(1-1/5)3X;
- 第四只猴子分完后還剩:(1-1/5)4X;
- 第五只猴子分完后還剩:(1-1/5)5X=(1024/3125)X;
得:a=(1024/3125)X;要使a為整數,X最小取3125,減去加上的4個,所以,這堆桃子最少有3121個。
**8**
我們有很多瓶無色的液體,其中有一瓶是毒藥,其它都是蒸餾水,實驗的小白鼠喝了以后會在5分鐘后死亡,而喝到蒸餾水的小白鼠則一切正常。現在有5只小白鼠,請問一下,我們用這五只小白鼠,5分鐘的時間,能夠檢測多少瓶液體的成分?
**9**
25匹賽馬,5個跑道,也就是說每次有5匹馬可以同時比賽。問最少比賽多少次可以知道跑得最快的5匹馬。
**10**
宿舍內5個同學一起玩對戰游戲。每場比賽有一些人作為紅方,另一些人作為藍方。請問至少需要多少場比賽,才能使任意兩個人之間有一場紅方對藍方和藍方對紅方的比賽?
提示:答案為4場。
**11、單詞博弈**
甲乙兩個人用一個英語單詞玩游戲。兩個人輪流進行,每個人每次從中刪掉任意一個字母,如果剩余的字母序列是嚴格單調遞增的(按字典序a < b < c <....<z),則這個人勝利。兩個人都足夠聰明(即如果有贏的方案,都不會選輸的方案 ),甲先開始,問他能贏么?
例如: 輸入 bad, 則甲可以刪掉b或者a,剩余的是ad或者bd,他就贏了,輸出1。
又如: 輸入 aaa, 則甲只能刪掉1個a,乙刪掉一個a,剩余1個a,乙獲勝,輸出0。
- 程序員如何準備面試中的算法
- 第一部分 數據結構
- 第一章 字符串
- 1.0 本章導讀
- 1.1 旋轉字符串
- 1.2 字符串包含
- 1.3 字符串轉換成整數
- 1.4 回文判斷
- 1.5 最長回文子串
- 1.6 字符串的全排列
- 1.10 本章習題
- 第二章 數組
- 2.0 本章導讀
- 2.1 尋找最小的 k 個數
- 2.2 尋找和為定值的兩個數
- 2.3 尋找和為定值的多個數
- 2.4 最大連續子數組和
- 2.5 跳臺階
- 2.6 奇偶排序
- 2.7 荷蘭國旗
- 2.8 矩陣相乘
- 2.9 完美洗牌
- 2.15 本章習題
- 第三章 樹
- 3.0 本章導讀
- 3.1 紅黑樹
- 3.2 B樹
- 3.3 最近公共祖先LCA
- 3.10 本章習題
- 第二部分 算法心得
- 第四章 查找匹配
- 4.1 有序數組的查找
- 4.2 行列遞增矩陣的查找
- 4.3 出現次數超過一半的數字
- 第五章 動態規劃
- 5.0 本章導讀
- 5.1 最大連續乘積子串
- 5.2 字符串編輯距離
- 5.3 格子取數
- 5.4 交替字符串
- 5.10 本章習題
- 第三部分 綜合演練
- 第六章 海量數據處理
- 6.0 本章導讀
- 6.1 關聯式容器
- 6.2 分而治之
- 6.3 simhash算法
- 6.4 外排序
- 6.5 MapReduce
- 6.6 多層劃分
- 6.7 Bitmap
- 6.8 Bloom filter
- 6.9 Trie樹
- 6.10 數據庫
- 6.11 倒排索引
- 6.15 本章習題
- 第七章 機器學習
- 7.1 K 近鄰算法
- 7.2 支持向量機
- 附錄 更多題型
- 附錄A 語言基礎
- 附錄B 概率統計
- 附錄C 智力邏輯
- 附錄D 系統設計
- 附錄E 操作系統
- 附錄F 網絡協議
- sift算法
- sift算法的編譯與實現
- 教你一步一步用c語言實現sift算法、上
- 教你一步一步用c語言實現sift算法、下
- 其它
- 40億個數中快速查找
- hash表算法
- 一致性哈希算法
- 倒排索引關鍵詞不重復Hash編碼
- 傅里葉變換算法、上
- 傅里葉變換算法、下
- 后綴樹
- 基于給定的文檔生成倒排索引的編碼與實踐
- 搜索關鍵詞智能提示suggestion
- 最小操作數
- 最短摘要的生成
- 最長公共子序列
- 木塊砌墻原稿
- 附近地點搜索
- 隨機取出其中之一元素